tengo el siguiente códigoProjections.countDistinct con Hibernate produce resultado inesperado
Criteria criteria = this.getCriteriaForClass(DeviceListItem.class);
Projection rowCountProjection = Projections.countDistinct("color");
criteria.setProjection(rowCountProjection);
int rowCount = ((Long) criteria.uniqueResult()).intValue();
return rowCount;
, cuyo propósito es averiguar el número de filas con diferentes valores para el campo denominado "color". El problema es que
Projections.countDistinct("color");
devuelve el mismo número de resultados como
Projections.count("color");
pesar de que hay varias filas con el mismo color en la vista de la base de datos. Al convertir el objeto Criteria a SQL, veo que el SQL producido por Hibernate es
select count(this_.COLOR) as y0_ from DEVICESLIST_VIEW this_ where 1=1
cuando yo esperaba que fuera
select count(distinct this_.COLOR) as y0_ from DEVICESLIST_VIEW this_ where 1=1
¿por qué no funcionan como se esperaba y hay alguna ¿remedio? Desafortunadamente no tengo opción de usar HQL en este caso.