【发布时间】:2014-09-02 12:08:44
【问题描述】:
我有“父”和“子”休眠实体。
在“父母”上,我有一个 Set<Child> 来容纳它的孩子。
当我用新的子级更新父级时,一切正常:子级是在“子”表上创建的。
但是,当我从 Parent hashset 中删除一个元素并保存时,不会删除数据库上对应的子元素。
这里是:
在 PARENT(命名工作流)上:
@OneToMany(orphanRemoval=true, cascade = CascadeType.ALL, mappedBy="workflow", fetch = FetchType.EAGER)
private Set<ActivityDB> activities;
On Child(命名活动)
@ManyToOne
@JoinColumn(name="id_workflow")
@Fetch(FetchMode.JOIN)
private WorkflowDB workflow;
我正在会话中处理持久实例。不会引发错误。似乎工作正常,但数据库上的寄存器仍然存在。
为了做一个测试,我加载了工作流并做一个
workflow.activities.remove( activity_index_x )
然后使用session.update( workflow ) 保存工作流。
但“activity_index_x”仍在数据库中,当我重新加载工作流时又恢复了活力。
【问题讨论】:
标签: java hibernate jpa orm hibernate-mapping