我想知道如何将这个 SQL 语句转换为 JPQL:
SELECT sum(price) AS Income, count(*) AS Passages, Station.Name
FROM Passage
INNER JOIN station ON passage.stationId = station.id
GROUP BY Station.Name
不会是这样的吗:
SELECT sum(price) AS Income, count(p) AS Passages, s.Name FROM Passage p
INNER JOIN station s
ON p.stationId = s.id GROUP BY s.Name
?
ON
(JPA 2.0)中没有JPQL
,但您可以进行隐式联接并使用 WHERE 子句:
假设实体
Passage
属性StationID
与实体id
的属性Station
是同一类型的对象。
SELECT SUM(s.price) Income, COUNT(p) Passages, s.Name
FROM Passage p, Station s
WHERE p.stationId = s.id
GROUP BY s.Name
建议如果问题可以添加实体车站通道并给出正确答案。
问题已解决:
SELECT count(p), sum(p.price), s
FROM Passage p
INNER JOIN p.station s
GROUP BY s.name;