2010-12-08 38 views
12

Je suis actuellement en train de passer de Hibernate à JPA 2 pure (ce qui d'ailleurs s'est avéré beaucoup plus long que prévu).
Le plus gros problème que j'ai jusqu'à maintenant est de trouver un moyen de forcer le chargement impatient des propriétés paresseuses. Avec Hibernate, cela a été fait en utilisant: criteria.setFetchMode("person", FetchMode.JOIN);.
Y a-t-il un moyen de le faire avec JPA 2?FetchMode dans JPA 2 CriteriaQuery

Répondre

15

Essayez ceci:

CriteriaQuery<Person> c = cb.createQuery(Person.class); 
Root<Person> person = c.from(Person.class); 
person.fetch("address"); 
c.select(person); 

Si l'on suppose il y a un à une relation entre votre entité Person et une entité Address.

+1

également si vous voulez récupérer des éléments hierachy (le cas particulier de la racine) vous devriez utiliser une jointure gauche comme ceci. 'CriteriaQuery critères = cb.createQuery (JerarquiaOrganizacional.class); Racine jerarquiaOrg = criteria.from (JerarquiaOrganizacional.class); jerarquiaOrg.fetch ("jerarquiaOrganizacional", JoinType.LEFT); ' – dennisbot