Pregunta

Quiero ejecutar el siguiente código SQL

select count(*) as myCount from user group by name;

me ocurrió con los siguientes criterios para el mismo

DetachedCriteria.ForClass(typeof(UserDTO))
    .setProjections(Projections.ProjectionList()
                        .Add(Projections.rowCount(),"myCount")
                        .Add(Projections.groupProperty("this.name"));

Me da la espalda como consecuencia par de la cuenta y el nombre, ¿Cómo puedo obtener sólo el recuento de esta.

¿Fue útil?

Solución

No creo que pueda hacerlo con criterios, pero es fácil con HQL. Es exactamente la misma cadena que la consulta SQL, pero con nombres de entidad / propiedad en lugar de los de mesa / columna.

Otros consejos

Puede utilizar recuento diferente si sólo hay un grupo por la columna.

HQL:

select count(distinct name) as myCount from user

Criterios:

DetachedCriteria.ForClass(typeof(UserDTO))
.setProjections(Projections.ProjectionList()
                    .Add(Projections.countDistinct("name"),"myCount"));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top