2

休眠版本:4.0.1.Final / JPA

你好,

我想合并一个分离表。执行 entityManager.merge() 后,从数据库中选择所有子表。

子表在 parentTable 中注释为:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "parentTable")

没有级联注释。我不想在合并时级联子表。如何禁用合并时的级联?

@Transactional
public void save() {
    entityManager.merge(parentTable); //cascades child´s here
}

仅重新选择先前已获取的子表。

谢谢 tak3shi

4

1 回答 1

0

默认情况下禁用所有级联。如果您不想级联任何东西,只需不要将级联属性添加到 @OneToMany 注释。

另一方面,如果您想级联除合并之外的所有其他内容,请使用以下内容:

@OneToMany(fetch = FetchType.LAZY, 
           mappedBy = "parentTable" 
           cascade = {CascadeType.DETACH, CascadeType.PERSIST, 
                      CascadeType.REFRESH, CascadeType.REMOVE})

也许还有其他一些与级联合并操作无关的问题。在这种情况下,显示实体以及创建和合并它们的代码将很有用。

于 2012-07-27T08:58:29.243 回答