首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现不带createCriteria()的get list和具有以下属性的get list?

如何实现不带createCriteria()的get list和具有以下属性的get list?
EN

Stack Overflow用户
提问于 2019-02-16 03:25:47
回答 1查看 65关注 0票数 0

我在Spring-5中实现DAO,使用Hibernate5实现Maven项目,以便在sessionFactory.getCurrentSession().createCriteria()的帮助下获得带有偏移量和最大计数的列表,但它现在已被弃用,我想要实现

我希望这三个函数在createCiteria()替换的新方法中

代码语言:javascript
复制
@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();
}

代码语言:javascript
复制
@Override
public Long count() {
    return (Long)session.openSession()
            .createCriteria(Department.class)
            .setProjection(Projections.rowCount())
            .uniqueResult();
}

和Restrictions.eq()

代码语言:javascript
复制
@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()方法

EN

回答 1

Stack Overflow用户

发布于 2019-02-16 03:32:09

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

代码语言:javascript
复制
builder.createQuery(...)

all over place上可以找到Examples

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54715881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档