Звучит так, будто вы пытаетесь повторно использовать критерии, созданные для получения упорядоченного списка, вместо того, чтобы получить счет.
Вместо того, чтобы пытаться использовать одни и те же Критерии для извлечения данных и подсчета, лучше всего просто создать независимые Критерии.
Используйте
Criteria orderCriteria= session.createCriteria(Libro.class)
.addOrder( Order.asc("ID") );
для получения списка по порядку и использования
Criteria countCriteria= session.createCriteria(Libro.class)
.setProjection(Projections.rowCount());
чтобы получить счет.
Чтобы использовать один и тот же критерий для двух целей, вы должны изменить состояние между использованиями. Я не уверен, как удалить заказ (или если вам действительно нужно для того, чтобы сделать подсчет). Для удаления проекции требуется setProjection(null)
.