【发布时间】:2013-09-16 22:42:46
【问题描述】:
我有 3 个班级 A、B 和 C。它们之间的关系是:
- 从 A 到 B 的一对多双向。
- C 扩展 B.
我可以添加新记录和编辑地址收集的现有记录,但我无法删除任何现有记录。
更新对象的代码
currentObj = getSession().merge(currentObj);
映射:
-
地址.hbm.xml
<joined-subclass name="test.domain.ParticipantAddress" table="PARTICIPANT_ADDRESS" dynamic-update="false" dynamic-insert="false" lazy="true" > <key column="IDENTIFIER" /> <many-to-one name="participant" class="test.domain.Participant" column="PARTICIPANT_ID" not-null="false" cascade="none" unique="true"/> <property name="sortOrder" type="long" update="true" insert="true" column="sortOrder" length="255" /> </joined-subclass> -
参与者.hbm.xml
<list name="addressCollection" table="PARTICIPANT_ADDRESS" lazy="false" inverse="true" cascade="all"> <cache usage="read-write"/> <key column="PARTICIPANT_ID"/> <list-index column="sortOrder"/> <one-to-many class="test.domain.ParticipantAddress"/> </list>
我也尝试使用 cascade="all,delete-orphan" 但它也抛出错误“A collection with cascade="all-delete-orphan" 不再被拥有实体实例引用"
【问题讨论】:
标签: java hibernate hibernate-onetomany