データベースに格納されているエンティティ クライアントのすべての roomId を返すクエリを作成したいと考えています。roomId は Client エンティティの属性です。
次のような型安全な構造を使用したいと思います。
TypedQuery<Set<Long>> q = em.createNamedQuery("getRoomIdsByServer", Set.class);
q.setAttribute("server",server);
ただし、これによりコンパイル エラーが発生します。
NamedQuery は次のようになります。
@NamedQuery(name = "getRoomIdsByServer", query = "SELECT c.room_id FROM Client c WHERE c.server = :server GROUP BY c.room_id")
ただし、これは JPQL の範囲を超えているようです。openJPA (バージョン 2.2.1) を使用しています。
型付きクエリを使用せずにこの問題を解決する解決策が 1 つあります。https://stackoverflow.com/a/6956037/1448704
を参照してください。