2012-11-08 14 views
6

Spring Dataを使用してエンティティの特定のフィールドのみを選択する方法については、JPAを使用しています。エンティティの特定の情報だけを選択したいのですが、リポジトリインタフェースは、あなたに全社の情報を返す方法を提供します。時々私はエンティティの2つか3つのフィールドしか必要とせず、20,30、... 100のフィールドを返すのはちょっと難しいかもしれません。Springデータのフィールドの選択

この種の機能は、Hibernate Criteria ProjectionやJPAの "SELECT NEW ...."クエリを使用して行うものです。 Springデータで可能かどうかはわかりません。

ありがとうございました。

+0

ようなクエリを記述することができると思います。問題のトラッカーを調べて、私はこれを見つけました。 [DATAJPA-51](https://jira.springsource.org/browse/DATAJPA-51)。 – yagamipaul

+0

クエリを作成し、それを '@ Query'アノテーションに入れてコードを実行してください。それでも動作するはずです... –

答えて

3

あなたができることは、リポジトリからList<Object[]>を返すことです。その後、サービスクラスでこのリストを繰り返し、必要なオブジェクトを手動で作成します。サンプルリポジトリ法

@Query("select el.moduleId, el.threadId from ExceptionLog el") 
public List<Object[]> tempQuery(); 
2

私はあなたにもこの方法で

SomeDataPOJO{ 
    required col1 
    required col2 
} 

をそれを行うと、それはまだ不可能だと思われ、この

@Query("select new SomeDataPOJO from requiredTable where xyz="abc") 
public List<SomeDataPoJO> tempQuery() 
関連する問題