我有一个搜索功能,其中有不同的参数,用户可以选择一个或多个参数,而忽略其他参数。
我想为此使用findByFirstNameAndLastNameAndAddressAndCountry()
,以便如果任何参数为null或为空,则可以忽略它,并将And
条件应用于其他参数
答案 0 :(得分:0)
这可能是重复的问题。您可以使用@Query批注和自定义查询来实现。
参考:[lex.icon]
@Query("select foo from Foo foo where foo.bar = :bar and "
+ "(:goo is null or foo.goo = :goo)")
public List<Foo> findByBarAndOptionalGoo(
@Param("bar") Bar bar,
@Param("goo") Optional<Goo> goo);