複数のテーブルを含む複雑なクエリを作成しており、結果を一覧表示する必要があります。通常、私は を使用しEntityManager
、結果を JPA 表現にマップします。
UserEntity user = em.find(UserEntity.class, "5");
次に、ユーザーUserEntity
クラスで定義されているすべての値にアクセスできます。しかし、ネイティブの複数テーブル クエリから返されたフィールド値にアクセスするにはどうすればよいでしょうか? 私が得るのはオブジェクトのリストです。ここまでは問題ありませんが、そのオブジェクトとは何ですか? 配列?地図?コレクション?...
//simpleExample
Query query = em.createNativeQuery("SELECT u.name,s.something FROM user u, someTable s WHERE s.user_id = u.id");
List list = query.getResultList();
//do sth. with the list, for example access "something" for every result row.
答えは非常に単純だと思いますが、そこにあるほとんどの例は、targetClass に直接キャストするときの使用法を示しているだけです。
PS: この例では、もちろんクラス マッピングを使用できます。しかし、私の場合someTable
はJPAによって管理されていないため、エンティティもクラス表現もありません.20個のテーブルに参加しているので、すべてのクラスを作成したくありません値にアクセスするだけです。