2010-06-24 7 views
3

Les requêtes HQL peuvent-elles le faire?HQL - trouver l'entité où la propriété x est la plus élevée

"obtenir l'UserEntity où la propriété creationTimestamp est la plus récente de toutes les UserEntities".

Essentiellement une requête pour retourner le "nouvel utilisateur" dans notre programme où chaque UserEntity a un champ mappé à une colonne timestamp dans notre base de données.

+0

Sans utiliser setMaxResults serait préférable. – benstpierre

+0

donc vous voulez retourner plus d'un utilisateur? – dotjoe

Répondre

4

La requête HQL à la liste des utilisateurs du plus récent premier est:

from UserEntities 
order by creationTimestamp desc 

Utilisez setMaxResults pour limiter le jeu de résultats à un seul utilisateur.

7

Interrogation pour le plus haut creationTimestamp ressemblerait à ceci:

from UserEntity where creationTimestamp = max(creationTimestamp) 

Si vous voulez retourner une seule instance et ignorer les autres résultats qui ont la même valeur (le plus élevé) sur cette propriété, vous pouvez utiliser query.uniqueResult() .

Voir Chapter 14. HQL: The Hibernate Query Language pour plus d'informations.

+0

+1 pour signaler n'est pas nécessaire. Mais je me demande si votre question pourrait théoriquement retourner plus d'un utilisateur dans certaines situations? –

+1

C'est correct! Il peut en retourner plus d'un, mais la question était de savoir où une propriété est la plus élevée ... quel élément attendez-vous lorsque plusieurs ont la valeur la plus élevée sur cette propriété? – stefanglase