0

我正在 Spring-5 中实现 DAO,使用 Hibernate 5 的 Maven 项目,用于 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();
}

@Override
public Long count() {
    return (Long)session.openSession()
            .createCriteria(Department.class)
            .setProjection(Projections.rowCount())
            .uniqueResult();
}

与限制.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() 方法

4

1 回答 1

1

改用javax.persistence.criteria.CriteriaBuilder并重新创建您的查询

builder.createQuery(...)

例子随处可见。_ _

于 2019-02-15T19:32:09.077 回答