java - spring data jpa findBy ......多列但保存搜索文本

标签 java spring hibernate jpa spring-data-jpa

我正在使用 spring data jpa,并且有一个查询来从整个列中搜索文本。

例如:

repository.findByNameContainingOrAliasContaining(name, alias, pageable)

而且名字和别名是同一个值,我必须这样写

string name = text; string alias = text;
repository.findByNameContainingOrAliasContaining(name, alias, pageable)

实际上,我有 5 列要匹配,那么我怎样才能停止编写相同的愚蠢代码呢? 并使代码像这样:repository.findByNameContainingOrAliasContaining(text, pageable)(现在这样写会导致“.NoSuchElementException”)

repository

最佳答案

当你面临隐式查询的限制时,你总是可以切换到显式@Query:

@Query("select f from Foo f where f.name like %?1% or f.alias like %?1% or ...")
public List<Foo> findByAnyColumnContaining(String text, Pageable pageable);

关于java - spring data jpa findBy ......多列但保存搜索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22321029/

相关文章:

java - Eclipse 中 NCrunch for Java 的等价物

java - 使用java获取一周的开始和结束日期

java - Spring MVC 请求映射,这可以是动态/可配置的吗?

java - 为什么 spring rest 文档使用 MockMvcBuilders.webAppContextSetup?

java - 如何在 Spring RestTemplate 中自定义自动编码(marshal)处理以生成/修改 XML header (编码、DOCTYPE)

mysql - Hibernate、Null 值和 nativeSQL

java - 无法打开 JPA EntityManager 进行事务处理;嵌套异常是 java.lang.IllegalStateException

java - Android AsyncTask 如何设置定时器

java - 缺少 Artifact org.hibernate :hibernate-core

java - Android - Eclipse : Syntax error on token "(", 此标记后应有表达式