Проблема в том, что у меня есть две сумки в моей сущности, которые я хотел бы отобразить в моем интерфейсе jsf (пружина сзади, поэтому не ленивая загрузка).Поэтому мне нужно с нетерпением получить их, чтобы отобразить информацию в виде списка:
- Точка 1 (Метка 1, Метка 2) (Тег1 ... Тег n)
- Пункт2 (Метка 3, Метка 4) (Tag1 ... Tag n)
Перевод обоих списков в нетерпение не сработал.Так что я попытал счастья с помощью соединения.Это позволило мне получить один список, но когда я добавил второй список, я получил известную ошибку «невозможно получить несколько пакетов».
Может ли Hibernate обрабатывать два соединения извлечения в запросе?
public class PointOfInterest
@OneToMany(mappedBy="poi")
private List<PointOfInterestLabel> labels = new ArrayList<PointOfInterestLabel>();
@ManyToMany
private List<Tag> tags = new ArrayList<Tag>();
Мое соединение извлечения:
SELECT DISTINCT p from PointOfInterest p
left join fetch p.labels
left join fetch p.tags WHERE p.figure = :figure
При запуске создание моей фабрики спящего режима завершается неудачно с помощью:
Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
at org.hibernate.loader.BasicLoader.postInstantiate(BasicLoader.java:94)
at org.hibernate.loader.hql.QueryLoader.<init>(QueryLoader.java:123)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:98)
at org.hibernate.impl.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:557)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:422)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:883)
... 55 more