Hibernate等同于分页查询

时间:2014-05-08 13:39:44

标签: mysql sql hibernate pagination hibernate-mapping

我有一个像分页支持的查询,

select *
from (select distinct field1
from table
where field2 = 'some_value'
and filed3 > 'somevalue'
and field4 in('somevalues')
and field5 is null order by field1)
where ROWNUM <= <page_size> ;

我怎样才能在hibernate中同等代表。我不想手工构造查询。相反,我希望设置hibernate中与上述查询匹配的条件。

2 个答案:

答案 0 :(得分:1)

使用条件API的第一个结果和最大结果。链接here

Criteria queryCriteria = session.createCriteria(YourClass.class);
queryCriteria .setProjection(Projections.distinct(Projections.property("id")));
queryCriteria.setFirstResult(10);
queryCriteria.setMaxResults(20);
queryCriteria.add(Restrictions.eq( "propertyOne", 10));  //Add restrictions here
List data = queryCriteria.list();

以上查询会为您提供10-20的记录

答案 1 :(得分:0)

criteria.setMaxResults(pageSize);
criteria.setFirstResult((pageNumber) * 10)