譯:Spring Data Repository 不區分大小寫查詢
使用Spring Data Repository 不區分大小寫查詢
原文連結:https://www.baeldung.com/spring-data-case-insensitive-queries
譯者:liululee
1. 概覽
Spring Data JPA
查詢預設是大小寫敏感的,換句話說,欄位值的比較是區分大小寫的。
本教程中,我們將探討如何在Spring Data JPA repository
快速新建不區分大小寫的查詢.
2. 依賴
首先,確保pom.xml
包含Spring Data
和H2
依賴。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>2.1.3.RELEASE</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> <version>1.4.199</version> </dependency>
最新版本請移步Maven Central。
3. 初始設定
假設我們有一個具有id
,firstName
,lastName
屬性,名為Passenger
的實體類。
@Entity class Passenger { @Id @GeneratedValue @Column(nullable = false) private Long id; @Basic(optional = false) @Column(nullable = false) private String firstName; @Basic(optional = false) @Column(nullable = false) private String lastName; // constructor, static factory, getters, setters }
另外,用測試類往資料庫填充一些Passenger
的樣例資料:
@DataJpaTest @RunWith(SpringRunner.class) public class PassengerRepositoryIntegrationTest { @PersistenceContext private EntityManager entityManager; @Autowired private PassengerRepository repository; @Before public void before() { entityManager.persist(Passenger.from("Jill", "Smith")); entityManager.persist(Passenger.from("Eve", "Jackson")); entityManager.persist(Passenger.from("Fred", "Bloggs")); entityManager.persist(Passenger.from("Ricki", "Bobbie")); entityManager.persist(Passenger.from("Siya", "Kolisi")); } //... }
4. 忽略大小寫查詢
現在假設我們想要執行一個不區分大小寫的搜尋,以查詢所有具有給定名字(firstName)
的passenger
。
為此,定義我們的PassengerRepository
:
@Repository
public interface PassengerRepository extends JpaRepository<Passenger, Long> {
List<Passenger> findByFirstNameIgnoreCase(String firstName);
}
這裡,IgnoreCase
關鍵字保證查詢不區分大小寫。
我們也可以使用JUnit測試一下:
@Test
public void givenPassengers_whenMatchingIgnoreCase_thenExpectedReturned() {
Passenger jill = Passenger.from("Jill", "Smith");
Passenger eve = Passenger.from("Eve", "Jackson");
Passenger fred = Passenger.from("Fred", "Bloggs");
Passenger siya = Passenger.from("Siya", "Kolisi");
Passenger ricki = Passenger.from("Ricki", "Bobbie");
List<Passenger> passengers = repository.findByFirstNameIgnoreCase("FrED");
assertThat(passengers, contains(fred));
assertThat(passengers, not(contains(eve)));
assertThat(passengers, not(contains(siya)));
assertThat(passengers, not(contains(jill)));
assertThat(passengers, not(contains(ricki)));
}
儘管傳遞了FrED
作為引數,但是返回的passenger
列表中包含了一個Fred
。顯然,在IgnoreCase
關鍵字的幫助下,我們實現了不分大小寫的查詢。
5. 總結
在本快速教程中,我們學習瞭如何在Spring Data Repository
中建立不區分大小寫的查詢。
最後,程式碼示例可以Github上找到。
文章來自公眾號:鍋外的大佬
專注分享國外最新技術內容, 幫助每位開發者更優秀地成長
相關推薦
譯:Spring Data Repository 不區分大小寫查詢
使用Spring Data Repository 不區分大小寫查詢 原文連結:https://www.baeldung.com/s
知識點:MySQL表名不區分大小寫的設置方法
ini 因此 過去 大寫字母 windows 一行 CA service div 在用centox安裝mysql後,把項目的數據庫移植了過去,發現一些表的數據查不到,排查了一下問題,最後發現是表名的大小寫不一致造成的。 mysql在windows系統下安裝好後,默認是對表名
模糊查詢:Spring Data JPA 如何進行模糊查詢(LIKE) ?
定義 repos ppi -- data art dao層 sql語句 pos 原文詳見-----> https://blog.csdn.net/czx1204/article/details/79131281 一. 方法一 1. Controller層: 方
mogodb不區分大小寫查詢
菜鳥教程-mogodb學習 一、不區分大小寫的正則表示式 如果檢索需要不區分大小寫,我們可以設定 $options 為 $i。 以下命令將查詢不區分大小寫的字串 runoob: >db.posts.find({post_text:{$regex:"runoob",$opti
grep不區分大小寫查詢字串方法
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/yanlaifan/article/details/52766109 grep不區分大小寫查詢字串方法 grep用來過濾字串資訊,grep預設對字母大小寫敏感,不過可以通過
oracle資料庫不區分大小寫查詢
為了在查詢時,使查詢結果不區分大小寫,一般將搜尋條件以及查詢結果集同時轉為大寫,或者小寫,然後進行查詢:如下:在下表中,查詢欄位(TRIM_COl)中包含aaa(不區分大小寫)的結果集,sql如下:查詢結果:同時轉為小寫的sql如下:
solr4.10不區分大小寫查詢
solr查詢string型別時,有時需要使之不區分大小寫( case insensitive),這時,就需要重新定義資料型別: 如統一轉化為小寫進行查詢: 1 2 3 4 5 6 7 8 <fieldType name="string
條款2~3:GotW#29 不區分大小寫的string
編寫一個與標準的std::string類完全相同ci_string類,但是它與通常提供的擴充套件函式stricmp一樣是不區分大小寫的。ci_string應用能夠如下使用: ci_string s("AbCde"); //不區分大小 assert(s == "abcde"); assert(s
題目標題: 計算兩個字串的最大公共字串的長度,字元不區分大小寫
private static int getMaxSame(String first0,String second0) { String first = first0.toLowerCase(); String second = second0.toLower
mysql 不區分大小寫
小寫 ron mysql mes dir mysqld bsp strong val show variables like ‘%case%‘ +------------------------+-------+| Variable_name | Valu
python中如何不區分大小寫的判斷一個元素是否在一個列表中
拒絕 結果 大小寫 over 用戶 ima image -1 技術分享 python中判斷某一個元素是否在一個列表中,可以使用關鍵字in 和 not in. 示例如下: 如果需要輸出相應的信息,可以搭配使用if語句,這裏不贅述。 ---------------------
【MySQL】如何解決MySQL中查詢不區分大小寫的問題
bsp title 標識 article ble 問題 col bold table mysql查詢默認是不區分大小寫的 如: select * from some_table where str=‘abc‘; select * from some_ta
新華三:字符串不分大小寫去重
i++ 一個 小寫 println nbsp spa div port str 題目: 字符串去重,只有大小寫的英文字母,英文字母去重時不分大小寫,且第一個出現的為大寫就輸出大寫,第一個出現的為小寫就輸出小寫 Java:字符串不分大小寫去重 1 im
MySQL表名不區分大小寫的設置方法
方法 root 錯誤 table 缺省 小寫 mysq win 莫名其妙 MySQL默認是區分表名大小寫的,通過如下設置,可以讓MySQL不區分表名大小寫:1、用root登錄,修改 /etc/my.cnf;2、在[mysqld]節點下,加入一行: lower_case_ta
轉!!mysql 查詢條件不區分大小寫問題
har bin class 區分大小寫 發現 IT server2 nbsp 情況 做用戶登錄模塊時,輸入用戶名(大/小寫)和密碼 ,mysql都能查出來。-- mysql查詢不區分大小寫。 轉自 http://blog.csdn.net/qishuo_java/art
將一個對象相同的屬性(不區分大小寫)賦值給一個新對象
spa name OS null tty return 賦值 AR val 1 public static T Mapper<S, T>(S source) 2 { 3 T t = Activator.Create
11g創建表空間和用戶(不區分大小寫)與導入導出命令
RR cmd IT word bho contents ide 刪除 創建用戶 --用戶名不區分大小寫--刪除用戶表空間drop user &用戶名 cascade;drop tablespace &永久表空間名稱 including contents a
Mysql不區分大小寫問題--舊庫的表大寫問題
1.mysql修改為不區分大小寫 vim /etc/my.cnf [mysqld] #設定為1表示不區分大小寫 lower_case_table_names=1 重啟mysql服務 service mysql restart 檢視是否修改成功 mysql> s
Python解決列表字元不區分大小寫問題
有時候,我們需要檢測一個元素是否已經存在列表中,並且不區分大小寫,如:列表已有元素Mary,那我們想認為MARY也已經被佔用。這個例子在實際程式設計中會用到很多,比如保證網站註冊使用者獨一無二、郵件姓名獨一無二等等。 下邊列子將實現使得列表元素獨一無二功能: 建立一個列表有若干個元素,