Also ich hab die Klasse Effektmuster mit der EnumMap als Eigenschaft:
Code:
private EnumMap<HeldenRassenGruppen, FertigkeitsListe> direkt_zuweisung;
Diese wird per Hibernate über dieses xml geladen.
Code:
<map name="hib_direkt_zuweisung" table="structure_effekte_muster_fdirektzuweisung">
<key column="fs_effektmuster" not-null="false"/>
<index type="HeldenRassenGruppen" column="enum_heldenrassengruppen"/>
<element type="FertigkeitsListe" column="enum_fertigkeitsliste" />
</map>
Hier ist der setter, getter ist normal.
Code:
public void setHib_direkt_zuweisung(Map<HeldenRassenGruppen, FertigkeitsListe> direkt_zuweisung) {
if (direkt_zuweisung != null)
if (direkt_zuweisung.size() > 0)
this.direkt_zuweisung= new EnumMap<HeldenRassenGruppen, FertigkeitsListe>(
direkt_zuweisung);
}
Das funktioniert auch alles recht gut, nur erhalte ich beim Laden zu Schluss folgende Benachrichtigung:
Hibernate: delete from structure_effekte_muster_fdirektzuweisung where fs_effektmuster=?
Hibernate: insert into structure_effekte_muster_fdirektzuweisung (fs_effektmuster, enum_heldenrassengruppen, enum_fertigkeitsliste) values (?, ?, ?)
Die Daten werden beim laden also jedesmal gelöscht um daraufhin wieder eingefügt zu werden.
Liegt es daran das ich eine EnumMap anstelle des Interfaces Map als Eigenschaft verwende?