gpt4 book ai didi

sql - SELECT 中带有子查询的 SQL 可以转换为 Hibernate 3.0.5 HQL 吗?

转载 作者:行者123 更新时间:2023-12-04 06:38:20 24 4
gpt4 key购买 nike

是否可以使用任何方法将以下内容转换为 HQL 3.0.5?子查询、带谓词的外连接等?

选择 c.case_id,
(SELECT MAX(a.begin_date)
FROM 赋值 a
WHERE a.case_id = c.case_id)
FROM 案例 c

case 和 assignment 之间是一对多的关系。查询的目的是返回所有案例及其最近的分配开始日期(如果存在)。

我很难准确地找到 Hibernate 3.0.5 支持什么和不支持什么,但我看到有迹象表明它只支持 WHERE 中的子查询。

编辑:如果给定案例不存在分配,则 case_id 仍应返回,并且返回的分配开始日期应为空。

最佳答案

首先,您的 SQL 查询可以用 JOIN 重写。和 GROUP BY而不是子查询:

SELECT c.case_id, MAX(a.begin_date)
FROM case c LEFT JOIN assignment a ON a.case_id = c.case_id
GROUP BY c.case_id

在这种形式中,它可以很容易地转换为 HQL,如下所示(取决于映射):
SELECT c.id, MAX(a.beginDate)
FROM Case c LEFT JOIN c.assignments a
GROUP BY c.id

关于sql - SELECT 中带有子查询的 SQL 可以转换为 Hibernate 3.0.5 HQL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4594139/

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