我有 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" 但它也抛出错误“拥有的实体实例不再引用具有 cascade=”all-delete-orphan” 的集合”