Hallo,
ich habe ein Problem mit Hibernate.
Und zwar habe ich eine Klasse Veranstaltung und eine Klasse Dozenten. Einer Veranstaltung wird genau ein Dozent zugewiesen. Der Dozent hat kein Set von Veranstaltung und damit ist die Verbindung unidirektional.
Wenn ich nun eine Veranstaltung mit Dozent hinzufüge klappt dieses auch ohne Problem. Bei einer Abfrage jedoch wird die Veranstaltung mit allen anderen many-to-many-Beziehungen korrekt ausgegeben, jedoch nicht der Dozent. Bei dieser erhält man über die getter-Methoden nur null-Werte. In der Datenbank hingegen werden sie korrekt angezeigt.
Woran kann dieses liegen?
Ihr würdet mir wirklich weiter helfen!
Im Variablen-Inspektor zeit er mir für den Dozenten statt einem normalen Dozent-Objekt folgendes an:
dozent Dozent$$EnhancerByCGLIB$$9797bf54 (id=1005)
CGLIB$BOUND true
CGLIB$CALLBACK_0 CGLIBLazyInitializer (id=1016)
CGLIB$CALLBACK_1 null
CGLIB$CONSTRUCTED true
dozenten HashSet<E> (id=1017)
dozentName null
dozentVorname null
dozentWechselzeit 0
id 0
DOZENT.hbm:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="dataLayer">
<class name="Dozent" table="DOZENT">
<id name="id">
<generator class="native" />
</id>
<natural-id mutable="true">
<property name="dozentName" />
<property name="dozentVorname" />
</natural-id>
<property name="dozentWechselzeit" />
</class>
</hibernate-mapping>
Veranstaltung.hbm
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="dataLayer">
<class name="Veranstaltung" table="VERANSTALTUNG">
<id name="id">
<generator class="native" />
</id>
<natural-id mutable="true">
<property name="startZeit" />
<property name="endZeit" />
<property name="bezeichnung" />
</natural-id>
<many-to-one name="dozent" column="DozentId" not-null="true" />
<property name="isSeminar" />
<property name="isKlausur" />
<set name="zenturien" table="VeranstaltungZenturie">
<key column="VERANSTALTUNG_ID"/>
<many-to-many column="id" class = "Zenturie"/>
</set>
<set name="raeume" table="VeranstaltungRaum">
<key column="VERANSTALTUNG_ID"/>
<many-to-many column="id" class = "Raum"/>
</set>
</class>
</hibernate-mapping>
ich habe ein Problem mit Hibernate.
Und zwar habe ich eine Klasse Veranstaltung und eine Klasse Dozenten. Einer Veranstaltung wird genau ein Dozent zugewiesen. Der Dozent hat kein Set von Veranstaltung und damit ist die Verbindung unidirektional.
Wenn ich nun eine Veranstaltung mit Dozent hinzufüge klappt dieses auch ohne Problem. Bei einer Abfrage jedoch wird die Veranstaltung mit allen anderen many-to-many-Beziehungen korrekt ausgegeben, jedoch nicht der Dozent. Bei dieser erhält man über die getter-Methoden nur null-Werte. In der Datenbank hingegen werden sie korrekt angezeigt.
Woran kann dieses liegen?
Ihr würdet mir wirklich weiter helfen!
Im Variablen-Inspektor zeit er mir für den Dozenten statt einem normalen Dozent-Objekt folgendes an:
dozent Dozent$$EnhancerByCGLIB$$9797bf54 (id=1005)
CGLIB$BOUND true
CGLIB$CALLBACK_0 CGLIBLazyInitializer (id=1016)
CGLIB$CALLBACK_1 null
CGLIB$CONSTRUCTED true
dozenten HashSet<E> (id=1017)
dozentName null
dozentVorname null
dozentWechselzeit 0
id 0
DOZENT.hbm:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="dataLayer">
<class name="Dozent" table="DOZENT">
<id name="id">
<generator class="native" />
</id>
<natural-id mutable="true">
<property name="dozentName" />
<property name="dozentVorname" />
</natural-id>
<property name="dozentWechselzeit" />
</class>
</hibernate-mapping>
Veranstaltung.hbm
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="dataLayer">
<class name="Veranstaltung" table="VERANSTALTUNG">
<id name="id">
<generator class="native" />
</id>
<natural-id mutable="true">
<property name="startZeit" />
<property name="endZeit" />
<property name="bezeichnung" />
</natural-id>
<many-to-one name="dozent" column="DozentId" not-null="true" />
<property name="isSeminar" />
<property name="isKlausur" />
<set name="zenturien" table="VeranstaltungZenturie">
<key column="VERANSTALTUNG_ID"/>
<many-to-many column="id" class = "Zenturie"/>
</set>
<set name="raeume" table="VeranstaltungRaum">
<key column="VERANSTALTUNG_ID"/>
<many-to-many column="id" class = "Raum"/>
</set>
</class>
</hibernate-mapping>