我有一个像分页支持的查询,
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中与上述查询匹配的条件。
答案 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)