Другой объект с тем же значением идентификатора уже был связан с каскадным слиянием сеанса.

Я прочитал об ошибке в заголовке, но не могу найти подходящее решение для моего случая, у меня есть следующее отношение:

@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 и объединить его дочерние объекты: parent= parentRepository.save(parent);

Другой объект с тем же значением идентификатора уже был связан с сеансом: [....CompositePK@22bf8646]; вложенное исключение - javax.persistence.EntityExistsException: другой объект с тем же значением идентификатора уже был связан с сеансом: .......CompositeMedicinePK@22bf8646]"

любое объяснение?

1 ответ

Похоже, эта проблема была исправлена ​​в hibernate версии 5.0.10, 5.1.1 и 5.2.0. Более подробная информация здесь: https://hibernate.atlassian.net/browse/HHH-10476

Другие вопросы по тегам