如何在没有createCriteria()的情况下实现dao获取列表并获取具有以下属性的列表?

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

我正在使用Hibernate 5在Spring-5,Maven项目中实现DAO,在sessionFactory.getCurrentSession().createCriteria()的帮助下获取offset和maxcount的列表,但它现在已被弃用,我想实现

我希望这三个功能在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();
}

AND With 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()方法

java spring hibernate deprecated createcriteria
1个回答
1
投票

请改用javax.persistence.criteria.CriteriaBuilder并使用重新创建查询

builder.createQuery(...)

Examples可以找到all over place

© www.soinside.com 2019 - 2024. All rights reserved.