session.getCurrentSession()个createCriteria(MyClass.class)已过时,现在如何使用.addOrder()

问题描述 投票:1回答:1

我一直在开发有:

public List<DepartmentType> getAllDepartmentTypes() {
    return session.getCurrentSession()
                .createCriteria(DepartmentType.class)
                .addOrder(Order.asc("department_type_name"))
                .list();
}

哪里:

@Autowired
SessionFactory session;

大约从替代this QuestioncreateCriteria(),我创建了一个方法来获取列表:

public List<DepartmentType> getAllDepartmentTypes() {
    CriteriaBuilder builder = session.getCurrentSession().getCriteriaBuilder();
    CriteriaQuery<DepartmentType> criteriaQuery = builder.createQuery(DepartmentType.class);    
    return session.getCurrentSession()
                .createQuery(criteriaQuery)
                .getResultList();
}

但我仍然不知道在哪里使用:

addOrder(Order.asc("department_type_name"))
java hibernate sql-order-by deprecated createcriteria
1个回答
1
投票

您需要使用CriteriaQuery.orderBy() BY子句提供的顺序。

public List<DepartmentType> getAllDepartmentTypes() {
    CriteriaBuilder builder = session.getCurrentSession().getCriteriaBuilder();
    CriteriaQuery<DepartmentType> criteriaQuery = builder.createQuery(DepartmentType.class);    
    Root<DepartmentType> deptType = criteriaQuery.from(DepartmentType.class);
    criteriaQuery.select(deptType).orderBy(builder.asc(deptType.get("department_type_name")));
    return session.getCurrentSession()
                .createQuery(criteriaQuery)
                .getResultList();
}
© www.soinside.com 2019 - 2024. All rights reserved.