Hibernate one to many unidirektional Mapping-Liste
-
29-09-2019 - |
Frage
Ich habe one-to-many
Beziehung zwischen Eltern und Kind Java-Objekten. Die übergeordnete Objekt Verwendungen java.util.List
dass speichert mehrere untergeordnete Objekte. Das Problem, das ich erlebt habe ist, wenn das Objekt übergeordnete Aktualisierung nachdem ich ein oder mehrere untergeordnete Objekt (e) an die List
in der übergeordneten hinzugefügt. Ich bin mit der saveOrUpdate
Methode zu speichern oder die Eltern zu aktualisieren. Es funktioniert gut, wenn ich eine neue Instanz der Eltern speichere, aber nach dem Speichern, ich versuche Kind Objekt (e) in die Mutter List
hinzufügen und dann auf das übergeordnete Objekt zu Anruf saveOrUpdate
versuchen, aber keine Einträge von Kind-Objekt ( e) get beibehaltenen in die Datenbank. Ich möchte nur einige Hinweise mögen. Hinweis : Ich bin nicht Annotationen verwenden.
Ein Ausschnitt aus der Parent.hbm.xml , das definiert, die eine Eins-zu-viele unidirektionale Beziehung:
<list name="children" cascade="all">
<key column="parent_id"/>
<index column="idx"/>
<one-to-many class="Child"/>
</list>
Lösung
Ich habe gerade versucht, dieses Beispiel zu reproduzieren und es funktionierte OK für mich.
Hier sind meine Zuordnungen:
<hibernate-mapping package="com.example.domain">
<class name="com.example.domain.Parent" table="PARENT">
<id name="id" column="parent_id" access="field">
<generator class="increment" />
</id>
<property name="name" column="parent_name" access="field" />
<list name="children" access="field" cascade="all">
<key column="parent_id" not-null="true" />
<index column="idx" />
<one-to-many class="Child" />
</list>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.example.domain">
<class name="com.example.domain.Child" table="CHILD">
<id name="id" column="child_id" access="field">
<generator class="increment" />
</id>
<property name="name" column="child_name" access="field" />
</class>
</hibernate-mapping>
Ich habe not-null="true"
auf die übergeordneten Zuordnung.
Haben Sie versucht zu Satz show_sql
in Ihrem Hibernate Config generierten SQL zu sehen?