在Spring MongoRepository中使用find()时如何忽略null或空值

时间:2019-05-09 06:06:34

标签: nullable spring-mongodb

我有一个搜索功能,其中有不同的参数,用户可以选择一个或多个参数,而忽略其他参数。 我想为此使用findByFirstNameAndLastNameAndAddressAndCountry(),以便如果任何参数为null或为空,则可以忽略它,并将And条件应用于其他参数

1 个答案:

答案 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);