У меня есть три объекта: A, B и C.
A имеет отношения один ко многим с B.
B имеет отношение «один ко многим» с C.
Классы следующие:
public class A {
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(...)
Set<B> getBSet();
}
public class B {
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(...)
Set<C> getCSet();
}
Когда я использовал session.get(A.class, id) (сессия - это объект Hibernate, и у меня уже был экземпляр A, сохраненный в базе данных с одним набором B и 1 набором C), чтобы получить постоянный объект класса A с предоставленный идентификатор, я получил следующее исключение:
Apr 12, 2018 4:44:25 PM org.hibernate.event.internal.DefaultLoadEventListener onLoad
INFO: HHH000327: Error performing load command : org.hibernate.PropertyAccessException: Exception occurred inside setter of com.example.B.cSet
Сеттер в B:
public void setCSet(Set<C> cSet) {
this.cSet = cSet;
...
}
Я думал, что уже заставил все жадно грузиться, но как-то не так, как хотелось.
Любые идеи, что произошло и как мне это исправить?
Спасибо за ваше время.