У меня есть следующая гибернация объект:Hibernate предприятия с более чем два OneToMany полого
@Entity
public class Customer {
@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Address> addresses = new ArrayList<>();
@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Contact> contacts = new ArrayList<>();
@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Name> names = new ArrayList<>();
// Many more, including a primary key
}
Запуск приложения, я получаю следующее исключение:
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
Если удалить одну произвольный OneToMany
ассоциации, или если я добавлю @Fetch(value = FetchMode.JOIN)
в арбитражную ассоциацию OneToMany
, все будет хорошо.
Является ли это ошибкой спящего режима, спящим ограничением, или что-то не так с моей сущностью? ТИА!
Без спящего режима я могу присоединиться к более чем двум таблицам. Это ограничение, что спящий режим не может присоединиться к трем таблицам? Он работает для меня с помощью FetchType.LAZY или с помощью FetchMode.SUBSELECT, но это может быть медленнее. Он не работает, используя 'Set' вместо' List'. – t777
@ t777 Благодарим вас за принятие. Я добавляю некоторые ссылки. –