Hallo Leute!
Ich beschäftige mich seit kurzem intensiv mit Hibernate und bin nun auf folgendes Problem gestossen:
Ich habe eine abstrakte Basisklasse Status, und zwei Subklassen CustomerStatus und ReservationStatus. Die abstrakte Basisklasse vererbt eine Liste namens "SuccStatus" in welcher Statusobjekte gespeichert werden, die als Nachfolgestati gelten. D.h. ich habe hier eine Assoziation auf gleichen Objekttypen.
Die Java-Klasse schaut wi folgt aus:
public abstract class Status extends ID implements java.io.Serializable {
// Fields
private String name;
private String typ;
private Set succStatus;
private String iconName;
// Constructors
/** default constructor */
public Status() {
}
// Property accessors
...
public Set getSuccStatus() {
return succStatus;
}
public void setSuccStatus(Set succStatus) {
this.succStatus = succStatus;
}
...
}
Das Mapping (ich verwende Table per ClassHierachie):
<hibernate-mapping>
<class name="hostelStar.model.Status" table="status" catalog="hostelstar">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="increment" />
</id>
<discriminator column="TYP" type="string"/>
...
<set name="succStatus" table="status_status" lazy="true" cascade="save-update">
<key column="ID" />
<many-to-many class="hostelStar.model.Status" column="SUCC_STATUS_ID"/>
</set>
<subclass name="hostelStar.model.ReservationStatus" discriminator-value="ResStatus">
...
</subclass>
<subclass name="hostelStar.model.CustomerStatus" discriminator-value="CustStatus">
...
</subclass>
</class>
</hibernate-mapping>
In der DB habe ich eine eigene tabelle in der ich diese Nachfolgebeziehungen abbilde
ID | SUCC_STATUS_ID
1 2
1 3
2 4
etc.
Leider erhalte ich beim Laden eines Reservation-Objects KEINE Objekte in der Liste. Ich habe schon einige Varianten des Mapping-Files ausprobiert, aber anscheinend verstehe ich hier wichtige Zusammenhänge nicht...
DANKE FÜR EURE HILFE!
|