Nested Query in Hibernate using Criterion
我有一个以下查询,我必须从子查询创建的临时表中选择行。
1
2 3 4 |
select x, y, x
from (select x, y, z from some_table where x between x1 and x2) where y like ‘y1’ order by z by desc |
我必须使用标准从数据库中获取结果
我已经浏览了几个使用标准和分离标准处理子查询的示例和文档。我使用了分离查询,但它没有达到目的,或者我遗漏了一些东西。
我使用了以下代码
1
2 3 4 5 6 7 8 9 10 11 12 13 |
DetachedCriteria subCriteria =
DetachedCriteria.forClass(SomeClass.class) .add(Restrictions.between(“x”,“x1”,“x2”)) .setProjection(Projections.projectionList() .add(Projections.property(“x”)) .add(Projections.property(“y”)) .add(Projections.property(“z”)); List<Object[]> results = session |
- 除非您发布您尝试过的内容,否则很难知道什么对您不起作用,我的意思是您的 Criteria 和 DetachedCriteria 声明
- 这必须用Hibernate完成吗?对我来说,这似乎是纯 SQL 的完美用例。另外,为什么要派生表?在您的示例中,实际上不需要嵌套该查询…
- @James ..我已经编辑了这个问题
- @Lukas ..我知道它可以通过纯 SQL 使用,但我必须使用 Hibernate。
HQL 或 JPQL 都不支持”派生表表达式”。您可以使用子选择或内选择,但仅此而已。
这次您需要使用本机查询,这实际上是正确的做法。当您想要获取实体而不是投影时,HQL/JPQL 最有用。
- 最后我选择了原生查询..谢谢
来源:https://www.codenong.com/24796225/