【问题标题】:Difference between Query keywords Containing, IsContaining, Contains, Like in Spring Data JPA查询关键字 Containing、IsContaining、Contains 之间的区别,就像 Spring Data JPA 中一样
【发布时间】:2021-11-02 05:03:24
【问题描述】:
Spring Data中查询关键字Containing、IsContaining、Contains、Like有什么区别?
List<T> findBy...Containing();
List<T> findBy...Contains();
List<T> findBy...IsContaining();
List<T> findBy...Like();
【问题讨论】:
标签:
java
spring
spring-boot
spring-mvc
spring-data-jpa
【解决方案1】:
IsContaining、Containing 和 Contains 几乎相同。
例如,
List<Employee> findByNameContaining(String name);
List<Employee> findByNameContains(String name);
List<Employee> findByNameIsContaining(String name);
对于以上所有方法,spring data 将创建带有LIKE 子句的查询,其中值将被包裹在% 中,如下所示Name = ABC 时的查询
SELECT * FROM Employee WHERE Name LIKE '%ABC%'
而在Like 方法中,用户需要显式添加通配符。
例如,
List<T> findByNameLike(String name);
当Name = ABCName = ABC时,spring data 将创建类似于以下查询的查询
SELECT * FROM Employee WHERE Name LIKE 'ABC'