【问题标题】:A different object with the same identifier value was already associated with the session cascade merge具有相同标识符值的不同对象已与会话级联合并相关联
【发布时间】:2018-09-04 19:57:45
【问题描述】:

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

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

有什么解释吗?

【问题讨论】:

    标签: hibernate jpa spring-data hibernate-5


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2013-08-30
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多