首页 文章

Hibernate / JPA:合并时出现意外的级联

提问于
浏览
2

Hibernate版本: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

1 回答

  • 0

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

    另一方面,如果要级联其他所有内容(合并除外),请使用以下命令:

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

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

相关问题