Uso de los criterios y proyecciones de Hibernate para seleccionar varias columnas distintas

Resuelto bvulaj asked hace 13 años • 1 respuestas

Usando los criterios de Hibernate, quiero ejecutar el equivalente a:

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

Pensé que hacer lo siguiente produciría los resultados que quería:

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

Pero lo que esto realmente hace es ejecutar algo como:

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

Lo que arroja un error, obviamente.

Aparte de no utilizar Criteria, ¿existe alguna solución para esto?

Gracias,

Brandon

bvulaj avatar Mar 04 '11 23:03 bvulaj
Aceptado
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("id.state"));
projList.add(Projections.property("id.uspsCity"));
criteria.setProjection(Projections.distinct(projList));
JB Nizet avatar Mar 04 '2011 16:03 JB Nizet