gpt4 book ai didi

java - 如何将 SQL 转换为具有联合和内部联接的 HQL?

转载 作者:行者123 更新时间:2023-11-30 10:04:13 25 4
gpt4 key购买 nike

我想将这个纯 SQL 查询转换为 HQL。我有一个关于如何将 SQL 查询转换为 HQL 查询的想法,但我的查询包含 UNION 然后是内部联接。所以为我转换它变得很棘手。

select count(distinct T.id_veicolo) from 
((select distinct C.id_veicolo from (
(select distinct id_veicolo from movement
where id_sede_uscita = 23
and annullato <> 'true'
and (((inizio >= '2019-01-05' and inizio <= '2019-01-06') and fine >= '2019-01-06')
or (inizio <= '2019-01-05' and (fine <= '2019-01-06' and fine >= '2019-01-05'))
or (inizio <= '2019-01-05' and fine >= '2019-01-06') or (inizio >= '2019-01-05' and fine <= '2019-01-06')))
UNION
(select id_veicolo from freeVehicle where id_sede = 23 and inizio <= '2019-01-05' and fine >= '2019-01-06') ) as C) as D
inner join (select id from parco_veicoli where targa = 'XXX') as R on D.id_veicolo = R.id) as T

问题点

如果此查询中只有 UNION 存在,那么我可以将此查询转换为 2 个子查询,但我的问题是在 UNION 之后我们再次使用内部联接.这是我的主要问题点。

我的需求

我希望 HQL 查询的结果与我从此 SQL 查询得到的结果相同。我不想使用 SQL 查询,因为 SQL 查询不支持缓存

最佳答案

如果您需要与内部联接严格联合,那么最好使用 native sql。结果集可以转换为 java 类中的 POJO 对象。但是您将利用 native 查询执行的速度,并且只需一次数据库命中.

关于java - 如何将 SQL 转换为具有联合和内部联接的 HQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56000390/

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