1
我有這個疑問在MySQL:如何在JPA中創建此本機查詢?
SELECT genre
FROM genre g, person_genre pg, rfid rfid, room room
WHERE
pg.id_genre = g.id and
pg.id_person = rfid.id_person and
rfid.id = room.id_rfid
GROUP BY
g.genre
HAVING COUNT(*) > 1;
輸出:藍調,搖滾
其中一期工程在MySQL查詢瀏覽器精緻漂亮,所以我想用這個相同的查詢,我的JSF 2 JPA,所以我這樣做:
public List<String> getListAverageGenres(){
return em.createNativeQuery("SELECT genre " +
"FROM genre g, person_genre pg, rfid rfid, room room " +
"WHERE " +
"pg.id_genre = g.id and " +
"pg.id_person = rfid.id_person and " +
"rfid.id = room.id_rfid " +
"GROUP BY " +
"g.genre " +
"HAVING COUNT(*) > 1").getResultList();
}
輸出:藍調,搖滾,藍調,搖滾,藍調,搖滾
我不知道爲什麼同一個查詢已被多次調用。 我認爲是因爲它是本機查詢,所以我試圖建立一個jpa查詢,看看它是否工作。
運行mysql中相同的查詢試圖爲本地查詢應該給予同樣的結果。 – beerbajay
@beerbajay它給出了相同的結果,但它在jpa中做了相同的查詢3次,爲什麼? –
聽起來像其他代碼多次調用'getListAverageGenres';查詢本身應該返回相同的兩行。嘗試使用調試器來查看方法何時被調用。 – beerbajay