最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Spring Data Jpa 模糊查詢(xún)的正確用法

 更新時(shí)間:2018年05月03日 13:42:21   作者:那年初二  
本篇文章主要介紹了詳解Spring Data Jpa 模糊查詢(xún)的正確用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

模糊查詢(xún)

Spring Data Jpa的使用可以減少開(kāi)發(fā)者對(duì)sql語(yǔ)句的編寫(xiě),甚至完全不需要編寫(xiě)sql語(yǔ)句。但是,開(kāi)發(fā)過(guò)程中總會(huì)遇到各種復(fù)雜的場(chǎng)景以及大大小小的坑。

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

Spring Data Jpa 模糊查詢(xún)正確用法

首先,我們先創(chuàng)建一個(gè)實(shí)體用來(lái)存儲(chǔ)我們的數(shù)據(jù)

/**
 * 實(shí)體
 *
 * @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)建我們實(shí)體對(duì)應(yīng)的Repository接口

/**
 * @author chentai
 * @date 18/04/22
 */
@Repository
public interface ExampleRepository extends CrudRepository<ExampleEntity, String> {

  /**
   * 模糊查詢(xún)正確用法
   * 其中username不支持模糊查詢(xún),deviceNames支持模糊查詢(xún)
   *
   * @param deviceNames 模糊查詢(xún)deviceNames
   * @param username 用戶(hù)名稱(chēng)
   * @return {@link List<ExampleEntity>}
   */
  List<ExampleEntity> findAllByDeviceNamesContainingAndUsername(String deviceNames,String username);  
  /**
   * 模糊查詢(xún)錯(cuò)誤用法
   * 其中username不支持模糊查詢(xún),deviceNames支持模糊查詢(xún)
   *
   * @param deviceNames 模糊查詢(xún)deviceNames
   * @param username 用戶(hù)名稱(chēng)
   * @return {@link List<ExampleEntity>}
   */
  List<ExampleEntity> findAllByDeviceNamesLikeAndUsername(String deviceNames,String username); 
}

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

總結(jié)

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

农安县| 长阳| 萨嘎县| 涟水县| 广水市| 原平市| 乐业县| 长岭县| 丰都县| 临江市| 白水县| 东海县| 江安县| 都安| 友谊县| 凤凰县| 沿河| 和林格尔县| 台州市| 高尔夫| 夏邑县| 威远县| 伊吾县| 区。| 莲花县| 定南县| 广汉市| 噶尔县| 宜川县| 南城县| 静安区| 顺平县| 太仆寺旗| 介休市| 河东区| 合水县| 博湖县| 伊宁县| 廉江市| 伊川县| 九台市|