gpt4 book ai didi

java - 将 MySQL 转换为 JPA

转载 作者:行者123 更新时间:2023-11-30 00:47:05 35 4
gpt4 key购买 nike

我正在尝试将 MySQL 查询转换为 JPA。

我正在使用 MySQL5 和 EclipseLink 2.4.2。

这是 MySQL 查询:

SELECT s.id, s.startDate, CAST(GROUP_CONCAT(DISTINCT s.endDate ORDER BY s.date DESC) AS DATE) endDate
FROM table_s s
WHERE ...
GROUP BY s.id, s.startDate

iddate 是主键。它们由 JPA 中的可嵌入 id 表示,并且字段在实体中也是可读的(可插入/可更新 = false)。

这是 JPA 查询:

SELECT s.id, s.startDate, SQL('CAST(GROUP_CONCAT(DISTINCT ? ORDER BY ? DESC) AS DATE)', s.endDate, s.date) AS endDate
FROM EntityS s
WHERE ...
GROUP BY s.id, s.startDate

当前的问题是生成的 sql 查询不包含 s.startDate,原因我不知道。

如果我只是将代码更改为SELECT s.id, s.startDate, s.endDate,它就可以工作......但我确实需要获取最后一个endDate >.

我尝试了 MAX(s.endDate) 但实际上它没有给出最后一个值(即使它当前有效,它也不正确并且可能会发送错误的结果)

如果有人有想法或解决方案,我会很高兴。

最佳答案

好吧,我是另外做的:

SELECT s.id, s.startDate, s.endDate
FROM EntityS s
WHERE ...
AND s.date = (
SELECT MAX(s.date)
FROM EntityS s2
WHERE s2.id = s.id
AND s2.startDate = s.startDate
AND ...
)
GROUP BY s.id, s.startDate

关于java - 将 MySQL 转换为 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21279587/

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