我可以组合AND和OR条件

时间:2016-04-07 13:36:08

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

我使用以下方法使用Spring Data JPA进行查询。

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

由于OR条件,查询始终通过。

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

无论如何都要在Spring Data JPA中做同样的事情。

1 个答案:

答案 0 :(得分: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方法参数的占位符。