JPA2和hibernate - 为什么合并存储子实体而持续存在却没有?

时间:2011-09-28 11:33:49

标签: hibernate jpa-2.0

我有通常的父子关系OneToMany:

@OneToMany(mappedBy = "mapType", cascade = CascadeType.ALL, orphanRemoval = true)
public List<Child> getChildren() {
    return children;
}

我有相当标准的用例:

  • 必须删除持续存在的子项 - 这样可以正常工作。

  • 通过添加到集合添加新子项。这适用于已经存在的父母,但对新父母不起作用。 EntityManager.merge但是确实将新父级与新子级一起保留。

为什么添加新子项不适用于新的Parent对象?在坚持被称之前,它们肯定存在。

顺便说一句,我正在使用Hibernate 3.6.6。

1 个答案:

答案 0 :(得分:0)

尝试在@OneToMany注释fetch = FetchType.EAGER中添加此属性。默认值为LAZY。它会有所帮助,因为hibernate将永久管理集合,然后进行更改。