2017-08-04 2 views
1

私のプロジェクトではSpring Data JPAを使用しています。だから、リポジトリに、私は次のようでリストを定義します。春データjpaリポジトリ複数の要素で探す

List<Branch> findByNameContainingAndByTypeContaining(String name, String type) 

それはこのケースで動作します、しかし、検索フォームで、私は、10の以上の検索条件を持って、それは意味と検索方法で、それはより多くを必要とします10要素、適切には、それらのフィールドは価値があります。例えば

findBy方法について

name: abc 
type: primary 
enabled: true 
createdBy: null 
modifiedBy: null 
and so more 

私は空白送信する場合、それはなく、null値を動作します。さらに、非常に多くのフィールドを検索する。だから私はこのようなフォームを検索するより良い方法を探しています。 Grailsフレームワークでは、これに対してnameQueriesを作成できますが、より良い方法を見つけることはできませんSpring JPA

アイデア?ありがとう。

答えて

2

次の例のように、QueryByExample APIを使用することができます。

Branch branch = new Branch();       
branch.setName("Foo"); 
branch.setEnabled(true)       

ExampleMatcher matcher = ExampleMatcher.matching();   
Example<Branch> example = Example.of(branch, matcher); 
branchRepository.findAll(example) 

をあなたは

より多くの例がhere in the Spring Data Docsあるなど、null値を含めるか、無視することを選択し、大文字と小文字の区別を指定することができます。

+0

うわー、これは私には新しく、ありがとうございます。 –

+0

喜んで私は助けることができる:) – dkanejs

+0

こんにちは、今、私はfromDateとtoDateと検索フォームを持って、それはデータを取得するブランチのdatetimeフィールドと比較する必要がどのように私はそれを行うことができますか?ありがとう。 –

関連する問題