javascript
译:Spring Data Repository 不区分大小写查询
2019獨角獸企業重金招聘Python工程師標準>>>
使用Spring Data Repository 不區分大小寫查詢
原文鏈接:https://www.baeldung.com/spring-data-case-insensitive-queries
作者:Shubhra Srivastava
譯者: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 {@PersistenceContextprivate EntityManager entityManager;@Autowiredprivate PassengerRepository repository;@Beforepublic 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上找到。
文章來自公眾號:鍋外的大佬
專注分享國外最新技術內容, 幫助每位開發者更優秀地成長
轉載于:https://my.oschina.net/liululee/blog/3054191
總結
以上是生活随笔為你收集整理的译:Spring Data Repository 不区分大小写查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信跳转手机默认浏览器打开的实现方式
- 下一篇: 【leetcode】1051. Heig