session.getCurrentSession (). createCriteria (MyClass.class) устарел, как использовать .addOrder () сейчас - PullRequest
0 голосов
/ 10 февраля 2019

Я занимаюсь разработкой:

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

Где:

@Autowired
SessionFactory session;

С этот вопрос об альтернативах createCriteria(), я создал методчтобы получить списки:

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"))

1 Ответ

0 голосов
/ 10 февраля 2019

Вам необходимо использовать CriteriaQuery.orderBy(), чтобы обеспечить заказ по пункту.

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();
}
...