【问题标题】:Can we use AND and OR in a single findyBy method of Spring Data to access MonogDB?我们可以在 Spring Data 的单个 findyBy 方法中使用 AND 和 OR 来访问 MonogDB 吗?
【发布时间】:2017-11-16 11:51:04
【问题描述】:

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

Employee findByFirstNameAndLastName(Stirng firstName, String lastName); 

返回满足以下条件的员工:

// 名字和姓氏

上面的方法效果很好,感谢 Spring Data。

但是,我想要这样的东西:

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

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

// FirstName AND (Last Name OR Designation)

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

【问题讨论】:

  • 好吧,在这种情况下,您需要一个 CustomRepository。

标签: spring mongodb spring-data


【解决方案1】:

虽然 SpringData 很强大,但它并没有那么强大。 SpringData 不可能知道你想要什么:

1) A 和(B 或 C)

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

您可以使用@NamedQuery 或@Query。

另一种选择是使用布尔代数。例如

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

因此您可以使用以下名称的方法:findByAandB_AandC。

【讨论】:

    猜你喜欢
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2012-04-20
    相关资源
    最近更新 更多