2013-01-07 3 views
12

クエリメソッドでSpringデータに 'exists'キーワードを使用するにはどうすればよいですか?Springデータにexistキーワードを使用してエンティティの存在を確認する方法は?

私はこのようなメソッドを持っているしたいと思います:

属性プロフィールの分野で
public interface ProfileRepository extends JpaRepository<Profile, Long> { 
    boolean existsByAttribute(String attribute); 
} 

回避方法は、custom-implementationを使用することです。しかし、キーワードとしてappendix定義が存在します。誰かが私にこのキーワードの使い方の例を教えてもらえますか?

答えて

8

文書化されたキーワードは、プロパティ参照と組み合わせて使用​​することを意図しています。したがって、この場合のEXISTSのセマンティクスは、プロパティが存在するかどうかをチェックすることです。ドキュメンテーションの一部がSpring Data Commonsから取得されており、そこにリストされているキーワードがSpring Data JPAでサポートされているとは限りません(リンクしたセクションの最初の段落で示されています)。 ExistsはSpring Data JPAではサポートされていません。たとえば、完全に存在しないフィールドと論理的に利用可能なフィールドの間に違いがあるため、nullという値がMongoDBでは意味をなさないからです。

あなたが探しているのは、(Is)Nullキーワードの周りにあるようですが、オブジェクトを返すという現行の制限があり、返されたリストのコンテンツをチェックする必要があります。さらなる進歩のためにあなたが望むかもしれない派生したクエリメソッドの予測をサポートするために、ticketがあります。

+0

これは、ドキュメントが反対を意味するため、まだサポートされていません。私は共通のドキュメントとjpaをチェックし、両方に含まれています。 – Vadimo

0

同様の結果は、Spring DataのQuery by example機能を使用して取得することができます。hereが例です。

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になることがあります – slfan

関連する問題