私は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クエリを作成して動作するかどうかを確認しようとしています。