1

我在 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 查询并查看它是否有效。

4

1 回答 1

0

你可以试试

SELECT DISTINCT genre
于 2012-05-10T18:53:11.583 回答