web-dev-qa-db-fra.com

Utilisation des critères et des projections d'Hibernate pour sélectionner plusieurs colonnes distinctes

En utilisant les critères d'Hibernate, je veux exécuter l'équivalent de:

select distinct uspscity, state from citycomplete where USPSCITY = 'HOUSTON'

Je pensais que faire ce qui suit donnerait les résultats que je voulais:

ProjectionList projList = new ProjectionList();
projList.add(Projections.distinct(Projections.property("id.state")));
projList.add(Projections.distinct(Projections.property("id.uspsCity")));
criteria.setProjection(projList);

Mais, ce que cela fait, c'est exécuter quelque chose comme:

select distinct uspscity, distinct state from citycomplete where USPSCITY = 'HOUSTON'

Ce qui jette une erreur, évidemment.

Hormis le fait de ne pas utiliser les critères, existe-t-il une solution à cela?

Merci,

Brandon

23
bvulaj
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("id.state"));
projList.add(Projections.property("id.uspsCity"));
criteria.setProjection(Projections.distinct(projList));
52
JB Nizet