我们可以在Spring Data的一个findyBy方法中使用AND和OR来访问MonogDB吗?

时间:2017-11-16 11:51:04

标签: spring mongodb spring-data

我在Mongo Repository Interface中添加了一个自定义查询方法:

Employee findByFirstNameAndLastName(Stirng firstName, String lastName); 

返回的员工符合以下条件:

  

// FirstName和姓氏

以上方法效果非常好,全部归功于Spring Data。

但是,我想要这样的事情:

Employee findByFirstNameAndLastNameOrDesignation(Stirng firstName, String lastName, String designation); 

上述方法应按以下标准返回员工详细信息:

  

// FirstName AND(姓氏或名称)

是否可以在单个方法中使用AND和OR?

1 个答案:

答案 0 :(得分:1)

尽管SpringData功能强大,但它并不是那么强大。 SpringData无法知道您想要的内容:

1)A和(B或C)

2)(A和B)或C. 等...

您可以使用@NamedQuery或@Query。

另一种选择是利用Bool代数。例如

A和(B或C)==(A和B)或(A和C)

所以你可以使用以下名称的方法:findByAandB_AandC。