Hibernate. Count запросы без HQL
2008-02-22 13:46
Мне нравится пользоваться объектом Criteria для составления запросов. Очень удобно и наглядно, гораздо лучше чем писать запрос в виде HQL. Приведу пример:
@SuppressWarnings("unchecked")
public List<LogAdd> findAddLogs(Long minLogID) {
Criteria criteria = session.createCriteria(LogAdd.class);
criteria.add(Restrictions.gt("id", minLogID));
criteria.addOrder(Order.asc("date"));
return criteria.list();
}
До недавнего времени приходилось использовать HQL только для запросов типа "count". Так как просто взять размер массива, означает достать все объекты из базы и только потом считать сколько их, а это нас явно не устраивает.
А вот недавно нашел метод как выполнять count запросы используя Criteria объект:
public Integer countAddLogs(Long minLogID) {
Criteria criteria = session.createCriteria(LogAdd.class);
criteria.add(Restrictions.gt("id", minLogID));
criteria.setProjection(Projections.rowCount());
return (Integer) criteria.list().get(0);
}
Обратите внимание на Projections.rowCount(). Это то, что мне было интересно.
Америки не открыл, но вот опубликать решил. Может будет полезно кому-то.
»
- 917 reads
- English
Вместо
Post new comment