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

Hibernate/JPA:合并时出现意外级联,hibernate,jpa-2.0,Hibernate,Jpa 2.0,Hibernate版本:4.0.1.Final/JPA 你好, 我想合并一个分离的表。执行entityManager.merge()后,将从数据库中选择所有子表 子表在parentTable中注释为: @OneToMany(fetch = FetchType.LAZY, mappedBy = "parentTable") 没有级联注释。我不想在合并时级联子表。 如何禁用合并时的级联 @Transactional public void save() { entityManager.me

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
}
仅重新选择以前提取的子表

谢谢
默认情况下,所有级联都被禁用。如果您不想级联任何内容,只需不向@OneToMany注释添加cascade属性即可

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

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

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

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

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

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

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

我不使用任何级联。我还尝试只设置CascaType.DETACH,但它仍然在合并时级联。
@Transactional public void save(){entityManager.merge(parentTable);//级联子对象的位置}
是什么让您认为此操作会导致合并?对列表中的实体实际执行了哪些更改?最有可能看到的查询连接到父级及其子级之间的关系状态,而与合并无关。保存父项和子项之间更改的关系是保存父项状态(在本例中通过合并操作)的一部分。我已在调试器中对此进行了检查。仅重新选择以前提取的子表。这对我不起作用。合并任何分离的对象时,所有关系都会自动级联。我用的是EclipseLink,我不使用任何级联。我还尝试只设置CascaType.DETACH,但它仍然在合并时级联。
@Transactional public void save(){entityManager.merge(parentTable);//级联子对象的位置}
是什么让您认为此操作会导致合并?对列表中的实体实际执行了哪些更改?最有可能看到的查询连接到父级及其子级之间的关系状态,而与合并无关。保存父项和子项之间更改的关系是保存父项状态(在本例中通过合并操作)的一部分。我已在调试器中对此进行了检查。仅重新选择以前提取的子表。这对我不起作用。合并任何分离的对象时,所有关系都会自动级联。我正在使用EclipseLink。你找到阻止合并级联的最终解决方案了吗?你找到阻止合并级联的最终解决方案了吗?