Hibernate chercher rejoignez -> ne peut pas extraire plusieurs sacs

Problème est que j'ai deux sacs dans mon entité qui je voudrais afficher dans mon jsf frontend (du Printemps à l'arrière donc pas de lazy loading). Je dois donc avec impatience les récupérer pour afficher les informations dans une liste comme ceci:

  • Point 1 (Étiquette 1, Étiquette 2) (Tag1 ... Balise n)
  • Point 2 (Label 3, 4) (Tag1 ... Balise n)

Mettant les deux Listes à la hâte n'a pas fonctionné. J'ai donc tenté ma chance avec une extraction rejoindre. Il m'a permis de récupérer une liste, mais quand j'ai ajouté la deuxième liste, je reçois le connu "impossible d'extraire plusieurs sacs d'erreur".

Peuvent Hiberner gérer deux fetch rejoint dans une requête?

public class PointOfInterest
 @OneToMany(mappedBy="poi")
private List<PointOfInterestLabel> labels = new ArrayList<PointOfInterestLabel>();

@ManyToMany
private List<Tag> tags = new ArrayList<Tag>();

Mon fetch rejoindre:

SELECT DISTINCT p from PointOfInterest p 
        left join fetch p.labels 
        left join fetch p.tags WHERE p.figure = :figure

Sur le démarrage de la création de mon hibernation usine échoue avec:

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

OriginalL'auteur mkuff | 2011-08-24