我正在使用 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”)
最佳答案
当你面临隐式查询的限制时,你总是可以切换到显式@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/