使用Critera对象
Criteria criteria = hibernateTemplate.getSessionFactory().getCurrentSession().createCriteria(User.class);
Long totalNum = (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();
criteria.setProjection(null);
criteria.setFirstResult(page);
criteria.setMaxResults(limit);
List<User> list = criteria.list();
离线查询有可以同样的效果
离线查询的话是先将离线查询对象转换为criteria对象
因为离线查询对象没有uniqueResult()方法?
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(User.class);
Criteria criteria = detachedCriteria
.getExecutableCriteria(hibernateTemplate.getSessionFactory().getCurrentSession());
Long totalNum = (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();
criteria.setProjection(null);
List<User> list = (List<User>) hibernateTemplate.findByCriteria(detachedCriteria, page, limit);