gandalf,
Si tu veux obtenir un "distinct", tu n'as pas besoin d'une "transformation", mais d'une "projection", Utiliser Criteria.DISTINCT_ROOT_ENTITY seulement garantie que, si le resultset obtenu a des JOINS père-enfant, le père ne sera répété qu'une fois, mais ça n'est pas le même que écrire un "distinct" dans ton code SQL.
Remarque que, si on demande un distinct dans un SQL query normal pour obtenir des parent uniques, on détruit quelques enfants. Voilà la raison por laquelle on utilise la transformation Criteria.DISTINCT_ROOT_ENTITY: elle rend l'"arbre" complet, sans détruire ni les parents (tout eux différents) ni les enfants.
Pourtant, ça n'est pas ton cas, je crois. Tu veux vraiment apliquer un "distinct" sur tes résultats. Ce genre d'operation on l'accomplit avec des "projections", par example:
Code:
tonCritere.setProjection(
Projections.distinct(Projections.projectionList().add(
Projections.property("taPropriete"),