JPARepository,名称方法返回包含“文本”的字段[关闭]

Posted

技术标签:

【中文标题】JPARepository,名称方法返回包含“文本”的字段[关闭]【英文标题】:JPARepository, name method to return field with "text" included [closed] 【发布时间】:2020-04-02 09:52:40 【问题描述】:

我正在使用 Spring Boot 2 和 JPARepository,我需要返回字段中包含单词的行。

例如,我想返回 A 字段中包含“SearchMe”一词的所有行。 我必须使用什么方法?

(目前单词总是在字符串的开头,但是如果在所有位置搜索会更好。

    findByAStartsWith (String search)
    findByAStartingWith (String search)
    findByAisStartingWith (String search)
    findByAContaining (String search)

有什么区别?

非常感谢。

【问题讨论】:

其实我没试过也不能试ATM。 【参考方案1】:

您可以在 JPQL 查询中使用%

@Query("Select a from TableName a where a.A like %:search%").

或来自 Spring Data 代理,如

findByAContaining(String search);

供参考 - https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation

【讨论】:

【参考方案2】:

你应该使用

List<Entity> findByALikeIgnoreCase(String searchString);

因为您不需要在前面加上%,所以它不区分大小写。

【讨论】:

以上是关于JPARepository,名称方法返回包含“文本”的字段[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Spring Framework JpaRepository 通过 findAll() 方法返回第一行的重复项

JpaRepository 注解 如何根据某非主键属性删除一个(或一批)记录?

使用 jparepository 从 getmapping 返回布尔结果

使用 JpaRepository,getById() 函数返回 null

JpaRepository vs CRUDRepository findAll

如何使用 JpaRepository 从 xml 中的命名本机查询返回 Map 作为结果