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 に答える