Comment faire une JPA requête avec JOINTURE EXTERNE GAUCHE

Sur la base de ces deux tables (et de leurs entités correspondantes) :

profiles(id, email, name)
items(id, profile_id, rank, price)

Profile(email, name)
Item(profile, rank, price)

J'ai la liste de tous les profils, commandé par le meilleur rang de leurs articles (c'est un "haut profil" liste en fait).

Voici la requête SQL comme vous pouvez l'exécuter dans PHPMyAdmin par exemple:

SELECT AVG(i.rank) AS rank, p.* FROM profiles AS p LEFT OUTER JOIN items AS i ON p.id = i.profile_id GROUP BY p.id ORDER BY rank DESC;

Je suis nouveau sur JPA, et je ne peux pas trouver quelques exemples à propos de faire une JOINTURE EXTERNE GAUCHE avec CriteriaBuilder (si c'est la bonne chose à faire).

Je serais vraiment reconnaissant si quelqu'un pouvait me mener vers le droit chemin (je ne suis pas demander à quelqu'un de me faire le travail, juste avoir de bons indices).

Merci beaucoup! 🙂

Qui implémentation JPA utilisez-vous? Aussi loin que je me souvienne, il y a quelques problèmes avec exprimant une telle requête via JPA 2.0 Critères de l'API en mode veille prolongée.
J'utilise Jouer! Cadre (playframework.org/documentation/1.1/jpa) mais je ne peux pas vous dire quelle version ils utilisent (si c'est pourquoi vous posez cette question :/)

OriginalL'auteur Cyril N. | 2011-01-20