Другой объект с тем же значением идентификатора уже был связан с каскадным слиянием сеанса.
Я прочитал об ошибке в заголовке, но не могу найти подходящее решение для моего случая, у меня есть следующее отношение:
@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