2013-05-15 118 views
0

我不知道我怎麼轉換這個SQL語句JPQL:轉換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 

+0

太懶了,現在要檢查它的所有內容,但是在JPA中你首先處理對象,而不是用它們的ID。所以,'ON p.station = s ...' – SJuan76

回答

1

問題解決了:

SELECT count(p), sum(p.price), s 
FROM Passage p 
INNER JOIN p.station s 
GROUP BY s.name; 
2

有一個在JPQL(JPA 2.0)沒有ON,但你可以做一個隱含的加入並使用WHERE子句:

假設實體Passage的atriburo StationID是與實體Station的屬性id相同類型的對象。

SELECT SUM(s.price) Income, COUNT(p) Passages, s.Name 
FROM Passage p, Station s 
WHERE p.stationId = s.id 
GROUP BY s.Name 

建議如果問題可以添加實體站通道並給出正確的答案。