查询关键字 Containing、IsContaining、Contains 之间的区别,就像 Spring Data JPA 中一样

Posted

技术标签:

【中文标题】查询关键字 Containing、IsContaining、Contains 之间的区别,就像 Spring Data JPA 中一样【英文标题】:Difference between Query keywords Containing, IsContaining, Contains, Like in Spring Data JPA 【发布时间】:2021-11-02 05:03:24 【问题描述】:

Spring Data中查询关键字ContainingIsContainingContainsLike有什么区别?

List<T> findBy...Containing();
List<T> findBy...Contains();
List<T> findBy...IsContaining();
List<T> findBy...Like();

【问题讨论】:

【参考方案1】:

IsContainingContainingContains 几乎相同。

例如,

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'

【讨论】:

以上是关于查询关键字 Containing、IsContaining、Contains 之间的区别,就像 Spring Data JPA 中一样的主要内容,如果未能解决你的问题,请参考以下文章

引起:java.lang.IllegalArgumentException: CONTAINING (1): [IsContaining, Containing, Contains]不支持redis查

linux安装svn时出现configure: error: could not find library containing RSA_new

关于Containing block

[转]包含块( Containing block )

Removed k rows containing missing values

No repository found containing,eclipse 自动更新erro 解决