java - 如何在使用 Criteria 的查询中构建 hibernate 多重限制

标签 java hibernate jpa

我当前正在构建一个查询,并且必须使用 hibernate 中的 Criteria 对象。基本上我的 native 查询如下:

select * from HDR where app_no in (select appNo from perm where code in (select code from access where appCode = 'P' and catId in :dymanicParam))

知道如何使用 org.hibernate.Criteria 构建上述 native 查询吗?

非常感谢您的回复。

最佳答案

尝试这样做

DetachedCriteria accessCriteria = DetachedCriteria.forClass(Access.class)
         .setProjection(Property.forName("code"))
         .add(Restrictions.eq("appCode", "P"))
         .add(Restrictions.eq("catId", dymanicParam));

DetachedCriteria permCriteria = DetachedCriteria.forClass(Perm.class)
         .setProjection(Property.forName("appNo"))
         .add(Property.forName("code").in(accessCriteria))

DetachedCriteria criteria = DetachedCriteria.forClass(HDR.class)
         .add(Property.forName("app_no").in(permCriteria))

// criteria.getExecutableCriteria(session).list();

关于java - 如何在使用 Criteria 的查询中构建 hibernate 多重限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55916742/

相关文章:

java - 显式调用 @PostConstruct 注解的方法

java - ManyToMany 集合不断被删除

java - Hibernate select id of join column without join

java - JPA的内部运作

java - hibernate 一对一 : Forced to chose between optional = false or cascade?

java - 为什么这不会打印任何整数?

java - 调用 pack() 后,JPanel getWidth() 返回零

java - 获取货币数据

java - 物化 View 上的 "Missing table"

java - Hibernate 4.2.2 从未知长度的输入流创建 blob