使用Detachedcriteria的Hibernate setMaxresults将无法正常工作

时间:2013-10-03 11:45:00

标签: hibernate hql

这是我的问题我有一个DetachedCriteria如下所示,我只需要一个需要获取最大ID的记录。但截至目前,我已将记录列表作为列表获取,并从那里获得使用for循环的最大ID记录。

DetachedCriteria criteria = DetachedCriteria.forClass(ContactList.class);
        criteria.add(Restrictions.eq("userId", id));

List contactList = getHibernateTemplate().findByCriteria(criteria);

来自contactList我发现带有单独循环的最大Id的记录。

我的问题是,有没有办法在DetachedCriteria本身中添加该限制。 我尝试了setMaxResults,但它不起作用。

1 个答案:

答案 0 :(得分:2)

DetachedCriteria criteria = DetachedCriteria.forClass(ContactList.class);
criteria.add(Restrictions.eq("userId", id)).setProjection(Projections.max("useId"));

List contactList = getHibernateTemplate().findByCriteria(criteria);

Projection.max将从hibernate中的表中检索最大值记录