Hibernate setMaxResults分页

时间:2011-11-17 11:29:11

标签: java hibernate criteria

如果我没有设置setFirstResult(-)并且每次递归调用criteria.setmaxresults(10),它会自动从数据库中获取下10个项吗?

2 个答案:

答案 0 :(得分:4)

没有。您必须使用criteria.setFirstResult(0)并自己翻页,如下所示:

public List getCarters(final int firstResult, final int maxResults) {

    final Criteria criteria = sessionFactory.getCurrentSession()
                      .createCriteria(SomePersistentClass.class);
                      .add(Restrictions.eq("name", "Carter"))
    criteria.setFirstResult(firstResult);
    criteria.setMaxResults(maxResults);

    return criteria.list();
}

答案 1 :(得分:2)

当然,没有。只有在调用.list()或.uniqueResult()

时,Criteria才会从数据库中获取数据