Parece que está intentando reutilizar un Criterio hecho para obtener una lista ordenada en lugar de obtener un conteo.
En lugar de tratar de usar los mismos Criterios para recuperar datos y contar, probablemente sea mejor que simplemente cree Criterios independientes.
Uso
Criteria orderCriteria= session.createCriteria(Libro.class)
.addOrder(Order.asc("ID"));
para recuperar la lista en orden, y el uso
Criteria countCriteria= session.createCriteria(Libro.class)
.setProjection(Projections.rowCount());
llevar los conteos.
Para utilizar los mismos criterios para dos propósitos, debe cambiar el estado entre usos. No estoy seguro de cómo eliminar un pedido (o si realmente lo necesita para realizar un recuento). Para eliminar una proyección solo se requiere setProjection(null)
.
Hmm ... ¿por qué llamas 'addOrder()' si no lo deseas? –
@PascalThivent buen punto. En ocasiones, es posible que se le devuelva un objeto Criteria con un orden integrado (por ejemplo, desde un método de fábrica) y es posible que desee eliminar ese orden predefinido. Es por eso que llegué a esta pregunta. –