gpt4 book ai didi

sql - 如何将复杂的 SQL 转换为 HQL 或 JPQL 查询

转载 作者:行者123 更新时间:2023-12-05 09:08:34 25 4
gpt4 key购买 nike

我有一个 SQL 命令,它有多个选择、函数和使用 H2 数据库的连接。我需要将其转换为 JPQL。

SELECT TotalHours, ROUND(PRICE*TotalHours, 2) AS TotalPayment, PLATE_NUM, CUSTOMER_ID FROM (

SELECT (DATEDIFF(s, TIMESTAMP'2020-07-29 16:00:00', TIMESTAMP'2020-08-10 07:00:00') / 3600.0) AS TotalHours, c.PRICE, b.PLATE_NUM, b.CUSTOMER_ID
from BOOKING b inner join CAR c on b.PLATE_NUM = c.PLATE_NUM

) AS x;

你能帮忙吗?

最佳答案

这个查询对于 JPQL 来说太复杂了。但是您可以将其作为 native SQL query 来执行.您的持久性提供程序(似乎是 Hibernate)会将语句直接发送到数据库。因此,您可以使用数据库支持的所有 SQL 功能,但如果您需要支持不同的 DBMS,则需要自己处理不同的 SQL 方言。

em.createNativeQuery("SELECT TotalHours, ROUND(PRICE*TotalHours, 2) AS TotalPayment, PLATE_NUM, CUSTOMER_ID FROM (SELECT (DATEDIFF(s, TIMESTAMP'2020-07-29 16:00:00', TIMESTAMP'2020-08-10 07:00:00') / 3600.0) AS TotalHours, c.PRICE, b.PLATE_NUM, b.CUSTOMER_ID from BOOKING b inner join CAR c on b.PLATE_NUM = c.PLATE_NUM) AS x");

如果要将查询结果映射到DTO对象,可以使用@SqlResultSetMapping。请参阅:https://thorben-janssen.com/result-set-mapping-constructor-result-mappings

关于sql - 如何将复杂的 SQL 转换为 HQL 或 JPQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63436583/

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