我试图使用父对象上的saveOrUpdate函数从Hibernate Java对象的集合中删除项目。更新和插入工作正常,但对象未正确删除。 saveOrUpdate()是否能够识别和删除已从父集中删除的对象?
作为旁注,我有来自DB的映射器 - > hibernate java对象 - >域对象,域对象保留在会话中。我是否需要在会话中保持hibernate java对象才能正常工作?
UPDATE(ANSWERED):我刚刚使用merge()而不是saveOrUpdate()。必要时合并调用DELETE而不必在会话中存储java hibernate对象。
答案 0 :(得分:3)
您需要将 delete-orphan 添加到映射中。这将告诉hibernate从一个到多个关系中删除“孤立”对象。以下是documentation中特定项目的链接。
答案 1 :(得分:1)
您正在寻找“删除孤儿”。查看reference guide on parent-child relationships和the annotation syntax的注释指南。