Я хочу хранить работников в объекте Organization. Для этого у меня есть класс Organization, имеющий сопоставление «один ко многим» для работников.
@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.EAGER)
@JoinTable(name = "ORGANIZATION_WORKER", joinColumns = { @JoinColumn(name = "orgIdPK") }, inverseJoinColumns = { @JoinColumn(name = "id") })
public Set<Worker> workerList;
«ORGANIZATION_WORKER - это временная таблица, которая содержит сопоставление»
Затем у меня есть класс Worker, в котором я сопоставляю «многие к одному» следующим образом.
@ManyToOne(cascade=CascadeType.ALL,fetch = FetchType.LAZY)
@JoinColumn(name = "orgIdPK")
public Organization organization;
Теперь, когда я сохраняю организацию после вставки в нее работников, используя сеанс гибернации, то есть
session.saveOrUpdate(org);
запрос вставки выполняется дважды (проблема N + 1).`
Hibernate: insert into ORGANIZATION_WORKER (orgIdPK, id) values (?, ?)
Hibernate: insert into ORGANIZATION_WORKER (orgIdPK, id) values (?, ?)
Поэтому, когда я раскрываю данные организации в API отдыха, все записи показываются дважды, из-за чего разбивка на страницы происходит неправильно в API остальных.Кто-нибудь знает, как решить эту проблему?