On devrait plutôt prendre en compte pour obtenir distinctes résultats en utilisant une requête de base de données (par exemple, SELECT DISTINCT(xyz) à partir de X) au lieu de l'aide de Critères.DISTINCT_ROOT_ENTITY. Veuillez noter que les Critères.DISTINCT_ROOT_ENTITY obtient les résultats uniques à partir d'objets en mémoire (et non à partir de la base de données), qui pourrait s'avérer coûteux pour les grands ensembles de résultats.
Bien sûr, vous signifiait "Projections.distinctes" Je n'ai, bien repéré. Vous voudrez peut-être éviter à l'aide de Projection.distincte parce qu'elle a le méchant secondaires indésirables affectent de la réduction de l'ensemble de résultats que pour un bien.
Voir aussi https://forum.hibernate.org/viewtopic.php?t=941669
OriginalL'auteur trunkc
Une solution plus flexible, peut être:
Je n'ai, bien repéré.
Vous voudrez peut-être éviter à l'aide de Projection.distincte parce qu'elle a le méchant secondaires indésirables affectent de la réduction de l'ensemble de résultats que pour un bien.
OriginalL'auteur waxwing
dépend de votre requête.
si vous fournir un identifiant unique vous pouvez appeler critères.uniqueResult()
sinon, vous appeler critères.setMaxResults(1) et d'appeler critères.uniqueResult()
OriginalL'auteur Salandur