我的集合映射文件包含以下关系:
<set inverse="false" lazy="true" name="collectionMembers" sort="unsorted" cascade="save-update,delete-orphan">
<key>
<column name="COLLECTION_CD" />
</key>
<one-to-many class="CollectionMember" />
</set>
然后CollectionMember映射文件包含以下双向关系:
<many-to-one name="collection" class="Collection" lazy="false">
<column name="COLLECTION_CD" length="36" not-null="true" />
</many-to-one>
所以Collection包含CollectionMembers的集合
我遇到的问题是,当我尝试通过从集合中删除CollectionMember来删除它时,我收到以下错误消息:
cannot update ("COLLECTION_MEMBER"."COLLECTION_CD") to NULL
为什么尝试在此处执行更新而不是删除?
由于
答案 0 :(得分:2)
为什么尝试在此处执行更新而不是删除?
因为inverse="false"
告诉Hibernate该集合负责关联,这意味着从集合中移除 - &gt; 删除行之间的关联 - &gt; 将外键设置为null
你可能想要的是inverse="true" cascade="all-delete-orphan"