国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 泰来县| 阿图什市| 资阳市| 吴堡县| 永仁县| 巴中市| 宁远县| 建德市| 沂水县| 闽侯县| 苍梧县| 拉孜县| 安仁县| 湾仔区| 伊吾县| 阳江市| 老河口市| 重庆市| 徐汇区| 女性| 新沂市| 越西县| 万州区| 渭南市| 盐城市| 庆阳市| 铜陵市| 芦溪县| 渭南市| 永福县| 甘孜县| 新巴尔虎右旗| 彰化县| 祥云县| 安乡县| 高尔夫| 肇源县| 和田县| 潼关县| 晴隆县| 赤城县|