2013-02-21 2 views
1

Когда у DetachedCrieria есть проекции, как получить количество строк набора результатов DetachedCriteria? Для HQL:Как реализовать Subqueries.rowCount (DetachedCriteria dc)

выбрать кол-во (*) из (выберите имя, сумма (комплектация) из оценка группа по названию).

Для спящего режима, как реализовать Subqueries.rowCount (DetachedCriteria dc)? Благодарю.

ответ

0

Если все, что вы хотите это подсчет числа, почему не только выполнение

select count(name) from score group by name 
+0

нет. Это общее требование. У нас есть DetachedCriteria. Как получить размер результата запроса? – Dave

+0

Выполнить его и увидеть число или результаты, полученные? detachedCriteria.getExecutableCriteria (session) .list(). size() – overmeulen

+0

Если в результирующем наборе есть миллионы объектов, будет ли он получать все сущности, а затем рассчитать его размер? Если это зависит от базы данных, как насчет mysql? Благодарю. – Dave

0

Я была такая же проблема ... Я придумал решение ниже, и она работала:

myCriteria.setProjection(Projections.sqlProjection("count(*) as count from (select distinct id , {alias}.enteredDate ", new String[] { "count" }, new Type[] { StandardBasicTypes.LONG })); 

// this is needed to close the parentheses opened in the Projection 
myCriteria.add(Restrictions.sqlRestriction(" 1=1)")); 
+0

Лучше расширить класс в Hibernate и реализовать его. То есть, добавьте select count (*) в сгенерированный SQL DetachedCriteria. Но не выяснили, как это сделать. Спасибо, что поделился. – Dave

Смежные вопросы