gpt4 book ai didi

java - Hibernate 中使用 Criterion 的嵌套查询

转载 作者:行者123 更新时间:2023-12-01 22:50:30 24 4
gpt4 key购买 nike

我有一个以下查询,我必须从子查询创建的临时表中选择行。

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

我必须使用 Criteria 从数据库中获取结果

我已经浏览了几个使用条件和分离条件处理子查询的示例和文档。我已经使用了分离查询,但它没有达到目的,或者我遗漏了一些东西。

我使用了以下代码

    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
.createCriteria(Program.class)
.add(Subqueries.exists(subCriteria))
.add(Restrictions.like("y", "y1"))
.addOrder(Order.desc("z")).list();

最佳答案

HQL 或 JPQL 都不支持“派生表表达式”。您可以使用子选择或 in-selects但仅此而已。

这次您需要使用 native 查询,这实际上是正确的做法。当您想要获取实体而不是投影时,HQL/JPQL 最有用。

关于java - Hibernate 中使用 Criterion 的嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24796225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com