2016-11-28 5 views
0

リポジトリ内(注:はちょうどfrom Organization org where in (...) and in (...))、IdentifiableWithNameはで、getName()メソッドであり、これを投影します。エンティティ@EntityGraphを@Queryに適用できますか?

@NamedEntityGraph(name = Organization.NamedQuery.GRAPH_ID_NAME, attributeNodes = { 
     @NamedAttributeNode(AbstractPersistedEntity.Index.ID ), 
     @NamedAttributeNode(Organization.Index.NAME) } 
) 

@EntityGraph(Organization.NamedQuery.GRAPH_ID_NAME) 
@Query("select org " + SELECT_LIST + " order by org.name") 
List<IdentifiableWithName> findOrganizationsForSelectList(); 

が、結果として得られるクエリは、エンティティのデフォルトであるように見えるだけの名前、IDフィールドに低下していません。これも可能ですか?もしそうなら、私は何が間違っているのですか?これがSpringデータでは不可能な場合はJPAで可能です(これは実現可能な機能要求である可能性があります)。代わりに、idnameしか含まず、他のフィールドや結合を含まないオリジナルのエンティティを、投影に@Queryすることができる他の方法はありますか?

答えて

0

私はあなたが一般的な意味ではなく、必要なものを行うことができますする必要があり春データJPAの特定の投影機能への射影を参照していると仮定します。

https://spring.io/blog/2016/05/03/what-s-new-in-spring-data-hopper#projections-on-repository-query-methods

クローズ予測は、私たちができるようにします公開されたプロパティーがデータストアから照会されるのは なので、クエリの実行を最適化します。

http://docs.spring.io/spring-data/jpa/docs/1.10.1.RELEASE/reference/html/#projections

public interface IdentifiableWithName{ 
    Long getId(); 
    String getName(); 
} 

interface SomeRepository extends CrudRepository<SomeClass, Long>{ 
    @Query("select org " + SELECT_LIST + " order by org.name") 
    List<IdentifiableWithName> findOrganizationsForSelectList(); 
} 
+0

ない何私たちがしているのに、私は、プラットフォームの2.0.xカーネルで何をした...春データ項のように投影を意味...ゴスリングと思います....ということでした新機能?私はIdentifiableWithName(あなたが持っているものに似ているが、継承を介している)というインターフェースを試してみましたが、うまくいきましたが、狭められていませんでした。 – xenoterracide

関連する問題