【问题标题】:Can I combine AND and OR conditions我可以结合 AND 和 OR 条件吗
【发布时间】:2016-07-28 10:23:58
【问题描述】:

我正在使用下面的方法使用 Spring Data JPA 进行查询。

findByUpdatedGreaterThanAndFromEmailOrToEmailInOrderByUpdatedAsc(final long updated, final String email, final String to);

由于 OR 条件,查询总是通过。

我的意图是 findBy(UpdatedGreaterThan)And(FromEmailOrToEmailIn)OrderByUpdatedAsc

在 Spring Data JPA 中是否也可以这样做。

【问题讨论】:

标签: spring-data-jpa spring-data-mongodb


【解决方案1】:

您可以使用 @Query 注释手动制作 mongodb query 以正确执行搜索条件的逻辑。

类似(我把订购部分留给你):

@Query(
    "{ $and : [ { 'updated' : { $gt: '?0'} }," + 
               "{ $or : [ { 'email' : '?1' }, { 'to' : '?2' } ] }")
findByUpdatedGreaterThanAndFromEmailOrToEmailInOrderByUpdatedAsc(final long updated, final String email, final String to);

其中 ?0、?1、?2 是 findBy 方法参数的占位符。

【讨论】:

  • 也这样做了。希望方法名称有一些语法来做同样的事情。 @choda 谢谢。
猜你喜欢
  • 2012-05-06
  • 1970-01-01
  • 2012-08-03
  • 2012-11-03
  • 2015-02-14
  • 1970-01-01
  • 2015-09-17
  • 2014-11-23
  • 2016-04-13
相关资源
最近更新 更多