Reply to comment

Hibernate. Count запросы без HQL


  Tagged

Мне нравится пользоваться объектом 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(). Это то, что мне было интересно.

Америки не открыл, но вот опубликать решил. Может будет полезно кому-то.


Reply

CAPTCHA
Бот ты или человек?
 
© 2006-2010 kobyleha.com