具有相同标识符值的不同对象已与会话级联合并关联

时间:2018-03-26 15:41:07

标签: hibernate jpa spring-data hibernate-5

我读到了标题中的错误,但我无法找到合适的解决方案,我有以下关系:

@Entity
public class Parent {


    @OneToMany(fetch = FetchType.EAGER,mappedBy = "parent",cascade = CascadeType.MERGE)
    @Fetch(FetchMode.SUBSELECT)
    private List<Child> child;
}


@Entity
public class Child {

    @EmbeddedId
    @JsonIgnore
    private CompositePK compositePK;

    @MapsId("compositeId")
    @ManyToOne
    @JoinColumn(name = "PARENT_ID")
    @JsonIgnore
    private Parent parent;

    @MapsId("AId")
    @JoinColumn(name = "A_ID")
    @OneToOne
    private A a;

}

我没有跨越我的方法并且没有打开会话,以下行在尝试合并父项并合并其子项时会引发错误: parent = parentRepository.save(parent);

具有相同标识符值的另一个对象已与会话关联:[.... CompositePK @ 22bf8646];嵌套异常是javax.persistence.EntityExistsException:具有相同标识符值的另一个对象已与会话关联:....... CompositeMedicinePK @ 22bf8646]&#34;

任何解释?

1 个答案:

答案 0 :(得分:0)

看来此问题已在休眠版本5.0.10、5.1.1和5.2.0中修复。这里的更多信息:https://hibernate.atlassian.net/browse/HHH-10476