Spring 数据存储库 MongoDB

Spring data repository MongoDB

我使用 Spring 数据并将按名字、姓氏、电子邮件或用户名搜索条目。我必须设置四次参数还是只能设置一次参数? 谢谢!

userRepository.findUsersByFirstnameOrSurnameOrEmailOrUsername("Mustermann", "Mustermann",
        "Mustermann", "Mustermann");

如果您希望根据方法名称自动生成查询,那么是的,您将必须传递 4 个参数,并且如果在某些情况下所有这些参数都可以具有相同的值,则必须是相同的值通过了4次。

但是,如果您愿意在传递参数的便利性和自动生成查询之间进行权衡,您可以使用 @Query 注释来生成您自己的查询。此注释将采用任何有效的 MongoDB 查询,因此对于您的情况,MongoDB 查询将是:

> db.user.find({ $or : [{"firstName" : "Mustermann"}, {"surname" : "Mustermann"}, {"email" : "Mustermann"}, {"userName" : "Mustermann"}] });

因此您可以将查询编码为:

@Query("$or : [{'firstName' : ?1}, {'surname' : ?1}, {'email' : ?1}, {'userName' : ?1}]")
List<User> findUsersByFirstnameOrSurnameOrEmailOrUsername(String keyword);