我在MySQL中有以下查询:
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查询,看看它是否有效。
最佳答案
您可以尝试
SELECT DISTINCT genre
关于mysql - 如何在JPA中创建此 native 查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10539957/