我正在Spring-5的Maven项目中使用Hibernate 5实现DAO,以借助以下命令获取具有offset和maxcount的列表
sessionFactory.getCurrentSession().createCriteria()
,但现在已弃用,我想实施
我希望这三个函数成为替换createCiteria()
的新方法
@Override
public List<Department> list(Integer offset, Integer maxResults) {
return sessionFactory.getCurrentSession()
.createCriteria(Department.class)
.setFirstResult(offset!=null?offset:0)
.setMaxResults(maxResults!=null?maxResults:10)
.addOrder(Order.asc("department_name"))
.list();
}
AND
@Override
public Long count() {
return (Long)session.openSession()
.createCriteria(Department.class)
.setProjection(Projections.rowCount())
.uniqueResult();
}
并带有Restrictions.eq()
@Override
public List<Department> getAllDepartmentsByDepartmentTypeId(int department_type_id) {
return session.getCurrentSession()
.createCriteria(Department.class)
.addOrder(Order.asc("department_name"))
.add(Restrictions.eq("department_type_id", department_type_id))
.list();
}
我希望实现这三种方法,以便 我可以使用而不是不推荐使用的createCriteria()方法
答案 0 :(得分:1)
改为使用javax.persistence.criteria.CriteriaBuilder并使用
重新创建查询builder.createQuery(...)