comment voulez-vous obtenir de “vrais” sql distinctes avec hibernate critères de requêtes?

J'ai une Hibernate critères de requête qui est mal à sortir les résultats maximum. Dans de nombreux cas, alors que j'ai spécifié 20 max de résultats, la requête en réalité qu'retourne 1 ou 5 des résultats, parce que les restrictions de retour de nombreux doublons.

Criteria c = session.createCriteria(DomainObject.class);
c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
c.createAlias("tags.list", "tag");
c.createAlias("names", "name");
c.createAlias("site", "site");
c.createAlias("site.tags.list", "siteTag");

//loads of or/and eq/like restrictions.

c.setFirstResult(0);
c.setMaxResults(20);

return c.list();

Est-il possible de résoudre ce problème de requête, de sorte que si je dis 20 max de résultats, il n'a vraiment de retour 20 quartier des résultats? Il semble assez fou que hibernate limites de la requête à 20 résultats, et ne l'distinctes de filtrage APRÈS plutôt qu'au niveau base de données.

Aider?

OriginalL'auteur egervari | 2010-06-30