2016-05-05 9 views
0

実際には、JPQLを使用してデータベースをクエリする必要があります。私はオブジェクトのリストを返す方法を見つけることができません。次のリンクhttp://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-selectでは、List of Object[]を返すことはできますが、リストオブジェクトのリストである返す必要のあるタイプに合わせる方法はわかりません。ご協力ありがとうございました。JPQLクエリの戻り値タイプ

答えて

0

あなたが取得したいフィールドのためのクラスを作成する必要があります最初のクエリから、たとえば、オブジェクトを作成するには:

package com.my.package; 

public class MyObject { 

    private String fieldOne; 
    private String fieldTwo; 

    public MyObject(String fieldOne, String fieldTwo) { 
     this.fieldOne = fieldOne; 
     this.fieldTwo = fieldTwo; 
    } 

    // Other methods... 
} 

次に、これらの特定のフィールドのためのあなたのjpqlクエリは次のようになります

@Query("SELECT new com.my.package.MyObject(t.fieldOne, t.fieldTwo) FROM MyTable t") 
List<MyObject> findMyObjects(); 
SELECT new com.my.package.MyObject(t.fieldOne, t.fieldTwo) FROM MyTable t 

あなたはこのよう@Query注釈を使用して、リポジトリにそれを使用することができます

またはEntityManagerを使用して:

EntityManager entityManager = ...; 

entityManager 
     .createQuery("SELECT new com.my.package.MyObject(t.fieldOne, t.fieldTwo) FROM MyTable t", MyObject.class) 
     .getResultList(); 
+0

はありがとう、あなたは、私に何のクエリを返すからオブジェクトを構築するために、より一般的な方法を与えた私はこの_ "新しいリストを選択します(t.fieldOne、t.fieldTwo)を行うために必要なFROM MyTable t "_ – saadoune

関連する問題