ファジークエリ
Spring Data JPAの使用は、SQLステートメントの開発者の執筆を減らすことができ、SQLステートメントをまったく記述する必要はありません。ただし、開発プロセス中に、あらゆるサイズのさまざまな複雑なシナリオと落とし穴が常にあります。
今日のプロジェクトの機能モジュールには、ファジークエリが必要です。 Native SQLのファジークエリキーワード「Like」、およびSpring Data JPAのリポジトリインターフェイスには、エンティティフィールドに対応するようなものもあります。しかし、直接使用する場合は、おめでとうございます。落とし穴ができて幸運でした。
スプリングデータJPAファジークエリ正しい使用法
まず、データを保存するエンティティを作成します
/** * entity * * @author chentai * @date 18/04/22 */ @data @entity @entity @equalsandhashcode(callesuper = true)public class emplyentity {@id @generatedvalue(generator = "uuid")@genericgenerator(name = "uuid"、strategy = "uuid") "uuid")プライベート文字列ユーザー名;プライベートストリングデバイスネーム;}次に、エンティティに対応するリポジトリインターフェイスを作成します
/** * @author chentai * @date 18/04/22 */ @repositorypublic interface examplerepositoryはcrudrepository <emplyentity、string> {/** * fuzzy query *の正しい使用法 *であり、ユーザー名がファジークエリをサポートしない場合、devicenames fuzzy query fumenmes fumenmes fumenmes fumenamesをサポートします。 @param username username username * @return {@link list <EmplyEntity>} */ list <emplyEntity> findallByDevicEnamesContainingAnduserName(string devicenames、string username); / ***ファジークエリのエラーの使用*ユーザー名がファジークエリをサポートしていない場合、Devicenamesはファジークエリをサポートします** @param devicenames fuzzy query devicenames* @param username username* @return {@linkリスト<例Devicenames、文字列ユーザー名); }最後に、テストクラスで試験の2つの方法をテストしました(テスト結果は当面は表示されません)、findallbydevicenameslikeandusernameメソッドが必要な結果を正しくクエリしないことを発見し、得られた結果は正確なクエリの結果です。そして、findallbydeviceNamesContainingAndusername私たちが望むファジークエリの結果を取得します。
要約します
プロジェクトにSQLネイティブステートメントを記述せずにファジークエリを使用したい場合は、キーワードをネイティブに使用することを当たり前のこととする代わりに、含有キーワードを使用してください。キーワードと同様に、JPAでも使用されます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。