Как реализовать dao, чтобы получить список без createCriteria () и получить список со следующими свойствами? - PullRequest
0 голосов
/ 15 февраля 2019

Я реализую DAO в Spring-5, Maven Project с Hibernate 5, для получения списка со смещением и 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();
}

И

@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 ()

1 Ответ

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

Вместо этого используйте javax.persistence.criteria.CriteriaBuilder и заново создайте запрос с помощью

builder.createQuery(...)

Примеры можно найти по всему место .

...