Hibernate 离线查询DetachedCriteria实现分页

DetachedCriteria dc = DetachedCriteria.forClass(Permission.class);
// 获取总记录数
Long totalCount = (Long) dc.setProjection(Projections.rowCount())
.getExecutableCriteria(dao.getHibernateTemplate()
.getSessionFactory().getCurrentSession()).uniqueResult();

// 取消投影
dc.setProjection(null);

// 设置hibernate的结果集为一个对象中嵌套关联属性对象,而不是包含多个对象(该对象和关联属性对象)
dc.setResultTransformer(DetachedCriteria.ROOT_ENTITY);

// 分页获取数据集
dao.findByCriteria(dc, Permission.class, firstResult, maxResults);

你可能感兴趣的:(Hibernate)