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