2012-03-03 2 views

Répondre

2

Une requête native peut être pour n'importe quelle table du magasin de données ... qu'elle soit basée sur une entité ou non. Le cache L1, en général, n'a rien à voir avec ce processus, sauf lorsque votre classe de résultat pour votre requête est une Entité.

+0

Donc, si je fais une requête native où mon résultat est une entité, dites-vous qu'en ce qui concerne le cache L1, cela fonctionnera comme si j'avais fait une requête similaire en utilisant JPQL ou CriteriaBuilder? – user1148956

+2

Le EntityManager d'une implémentation JPA (conforme) ne doit renvoyer qu'une seule Entité pour un ID particulier (c.-à-d. Un seul géré par cette EM à tout moment), donc si la requête renvoie une Entité avec un identifiant et que cet identifiant est déjà mis en cache alors il devrait retourner l'objet mis en cache. – DataNucleus

+0

OK - c'est logique. Donc, il semble que dans le cas d'un simple sélection où le retour est une entité, il ne devrait pas importer si j'utilise Native SQL, JPQL ou CriteriaBuilder. Dans un cas comme celui-ci est-il un avantage de ne pas utiliser SQL natif? – user1148956

Questions connexes