Hallo Community,
ich möchte gerne Hibernate und das Google Web Toolkit zusammen benutzen, jedoch schaffe ich es nicht, dass die Tabellen ordentlich angelegt werden.
Das Projekt an sich:
Ich habe verschiedene Polygone, deren Koordinaten in einer Klasse GeoPoint gespeichert werden.
Zu jedem Polygon gehören n GeoPoints, jeder GeoPoint gehört zu einem Polygon (1:n-Beziehung also).
Ich bekomme beim Datenbankzugriff folgenden Fehler:
Code:
645 [http-bio-8080-exec-9] ERROR org.hibernate.util.XMLHelper - Error parsing XML: XML InputStream(7) Dokument-Root-Element "generator"muss mit DOCTYPE-Root "hibernate-mapping" übereinstimmen.
645 [http-bio-8080-exec-9] ERROR org.hibernate.util.XMLHelper - Error parsing XML: XML InputStream(9) Markup im Dokument nach dem Root-Element muss ordnungsgemäß formatiert sein.
Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/lumbeck/domain/Polygon.hbm.xml
Feb 13, 2012 2:24:00 PM org.apache.catalina.core.ApplicationContext log
Meine Datei Polygon.hbm.xml sieht so aus:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<generator class="native" />
<hibernate-mapping>
<class name="com.lumbeck.domain.Polygon" table="POLYGON">
<id name="id" column="POLYGON_ID">
<generator class="native"/>
</id>
<set name="geopoints" table="POLYGON_VERTEXES" lazy="true">
<key column="POLYGON_ID" />
<many-to-many column="GEOPOINT_ID"
class="com.lumbeck.domain.GeoPoint" />
</set>
</class>
</hibernate-mapping>
Und die Datei Polygon.java:
Code:
package com.lumbeck.domain;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import com.lumbeck.client.dto.GeoPointDTO;
import com.lumbeck.client.dto.PolygonDTO;
public class Polygon implements Serializable{
private Long id;
private Set<GeoPoint> vertexes;
public Polygon() {}
public Polygon(Long id) {
this.id = id;
}
public Polygon(PolygonDTO polyDTO) {
this.id = polyDTO.getId();
Set<GeoPointDTO> geopointDTOs = polyDTO.getVertexes();
if(geopointDTOs != null) {
Set<GeoPoint> geopoints = new HashSet<GeoPoint>(geopointDTOs.size());
for(GeoPointDTO gpdto : geopointDTOs) {
geopoints.add(new GeoPoint(gpdto));
}
this.vertexes = geopoints;
}
}
// weitere getter und setter und toString methode
}
Das müsste doch soweit richtig sein, oder?
Warum kann nicht geparsed werden?