国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

詳解Spring Data Jpa 模糊查詢的正確用法

2024-07-14 08:40:35
字體:
供稿:網(wǎng)友

模糊查詢

Spring Data Jpa的使用可以減少開發(fā)者對sql語句的編寫,甚至完全不需要編寫sql語句。但是,開發(fā)過程中總會遇到各種復(fù)雜的場景以及大大小小的坑。

今天項目中某個功能模塊需要用到模糊查詢。原生sql中模糊查詢關(guān)鍵字‘Like',而Spring Data Jpa的Repository接口中恰恰也有實體字段對應(yīng)的Like。但是,如果直接使用它,那么恭喜你,你幸運地掉坑了。

Spring Data Jpa 模糊查詢正確用法

首先,我們先創(chuàng)建一個實體用來存儲我們的數(shù)據(jù)

/** * 實體 * * @author chentai * @date 18/04/22 */@Data@Entity@EqualsAndHashCode(callSuper = true)public class ExampleEntity{  @Id  @GeneratedValue(generator = "uuid")  @GenericGenerator(name = "uuid", strategy = "uuid")  private String Id ;  private String username;  private String deviceNames;}

接著,創(chuàng)建我們實體對應(yīng)的Repository接口

/** * @author chentai * @date 18/04/22 */@Repositorypublic interface ExampleRepository extends CrudRepository<ExampleEntity, String> {  /**   * 模糊查詢正確用法   * 其中username不支持模糊查詢,deviceNames支持模糊查詢   *   * @param deviceNames 模糊查詢deviceNames   * @param username 用戶名稱   * @return {@link List<ExampleEntity>}   */  List<ExampleEntity> findAllByDeviceNamesContainingAndUsername(String deviceNames,String username);    /**   * 模糊查詢錯誤用法   * 其中username不支持模糊查詢,deviceNames支持模糊查詢   *   * @param deviceNames 模糊查詢deviceNames   * @param username 用戶名稱   * @return {@link List<ExampleEntity>}   */  List<ExampleEntity> findAllByDeviceNamesLikeAndUsername(String deviceNames,String username); }

最后,在測試類中測試ExampleRepository中的兩個方法,(測試結(jié)果暫不展示)發(fā)現(xiàn)findAllByDeviceNamesLikeAndUsername方法并沒有正確查詢到我們想要的結(jié)果,得到的結(jié)果是精確查詢的結(jié)果。而findAllByDeviceNamesContainingAndUsername得到了我們想要的模糊查詢的結(jié)果。

總結(jié)

如果想要在項目中不編寫sql原生語句的情況下使用模糊查詢,請使用Containing關(guān)鍵字,而非想當(dāng)然的認(rèn)為原生使用Like關(guān)鍵字,JPA中也是使用Like關(guān)鍵字。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦北县| 嘉兴市| 建宁县| 永德县| 永年县| 石狮市| 繁昌县| 博野县| 平昌县| 大厂| 海丰县| 五寨县| 永善县| 福州市| 噶尔县| 镇原县| 大姚县| 哈密市| 康马县| 天峨县| 焦作市| 北宁市| 彝良县| 瑞安市| 抚松县| 柳江县| 顺义区| 闸北区| 庆云县| 曲靖市| 城步| 兰西县| 余干县| 东宁县| 柳林县| 黔西县| 建昌县| 神农架林区| 大厂| 长岛县| 安多县|