2

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

@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]"

有什么解释吗?

4

1 回答 1

0

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

于 2018-10-05T19:09:17.607 回答