2016-12-21 12 views
1

カスタムクエリでJPA仕様述語を使用できるのでしょうか?JPA仕様とspring-data-jpaを扱う際にreturn型としてdeclare streamを使用する方法

私は試しましたが、成功しませんでした。

@Query("select c from Customer c") 
Stream<Customer> streamAllCustomers(); 

これはOKではありません

Stream<Customer> streamAllCustomersWithFilter(Specification<Customer> filter); 

が道にはあり

@Repository 
public interface CustomerRepository 
    extends JpaRepository<Customer, Long>, 
    JpaSpecificationExecutor<Customer> { 
} 

次のように照会OKです:

のは、私はエンティティCustomerとリポジトリがあるとしましょうこれを達成するには?

NB私は@Queryにparamsを入れることができると知っていますが、私は現在のアプリの設計にとどまり、仕様をすべて使用したいと考えています。

+0

「JPA仕様」のようなものはありません。つまり、Spring Data JPA API(!= JPA API)のみです。タグ固定 –

+0

あなたのタイトルとあなたの質問の本文には異なる質問があります。どちらをお答えしたいですか? –

答えて

1

TL; DR;

ない、といや、手動はい

私はあなたの質問のissue DATAJPA-906答え両方

  1. 質問(タイトルから)だと思う:を扱うときに戻り値の型として宣言するストリームを使用する方法をJPA仕様とspring-data-jpa?

あなたは、少なくとも直接ではなく、サポートされている方法ではありません:JpaSpecificationExecutor上

サポートするJava 8つのストリームが

[..]

この残念なことにする必要がありますメソッドのシグネチャのストリームがJavaのバージョンでインターフェイスをアンロード可能にするため、2.0リバンプを待つ

もちろん、いつでもadd your custom methods including implementationにすることができます。

  1. 質問カスタムクエリでJPA仕様述語を使用できますか?問題が明確でない場合には(カスタムクエリは、クエリが@Query注釈

どのようにあなたも、仕様、手動で定義されたJPQLクエリによって定義されたCriteriaQueryを組み合わせることでしょうか?

を使用して定義されています:カスタムクエリに内部セレクタが含まれている場合、仕様からの基準を取得する必要がありますか?あなたは

ストリームを返す、カスタムメソッドを実装し、引数として指定を取って、JpaSpecificationExecutor、既存のインターフェイスメソッドを呼び出すとに結果を変換するために準備された仕様とそれを組み合わせると何ができるか

Stream

+0

spring-data-jpaの問題へのポインタをありがとう、私は多分 "クリーナー"実装の2.xを待つでしょう:) – Wajax

関連する問題