我在Mongo Repository Interface中添加了一个自定义查询方法:
Employee findByFirstNameAndLastName(Stirng firstName, String lastName);
返回的员工符合以下条件:
// FirstName和姓氏
以上方法效果非常好,全部归功于Spring Data。
但是,我想要这样的事情:
Employee findByFirstNameAndLastNameOrDesignation(Stirng firstName, String lastName, String designation);
上述方法应按以下标准返回员工详细信息:
// FirstName AND(姓氏或名称)
是否可以在单个方法中使用AND和OR?
答案 0 :(得分:1)
尽管SpringData功能强大,但它并不是那么强大。 SpringData无法知道您想要的内容:
1)A和(B或C)
或
2)(A和B)或C. 等...
您可以使用@NamedQuery或@Query。
另一种选择是利用Bool代数。例如
A和(B或C)==(A和B)或(A和C)
所以你可以使用以下名称的方法:findByAandB_AandC。