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
答案 0 :(得分:0)
默认情况下禁用所有级联。如果您不想级联任何内容,只需不要将cascade属性添加到@OneToMany注释。
另一方面,如果你想要除了合并之外的其他所有内容,请使用以下命令:
@OneToMany(fetch = FetchType.LAZY,
mappedBy = "parentTable"
cascade = {CascadeType.DETACH, CascadeType.PERSIST,
CascadeType.REFRESH, CascadeType.REMOVE})
可能还有一些其他问题与级联合并操作无关。在这种情况下,显示实体以及如何创建和合并它们的代码将非常有用。