我正在使用spring数据jpa,并且有一个查询来搜索整个列中的文本。
例如:
repository.findByNameContainingOrAliasContaining(name,alias,pageable)
名称和别名是相同的值,我必须像
一样写string name = text; string alias = text;
repository.findByNameContainingOrAliasContaining(name,alias, 可分页)
实际上,我有5列要匹配,所以我怎么能停止写相同的愚蠢代码?
并使代码如下:repository.findByNameContainingOrAliasContaining(text, pageable)
(这篇文章现在将导致“.NoSuchElementException”)
答案 0 :(得分:3)
当您面临隐式查询的限制时,您始终可以切换到显式@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);