【问题标题】:spring-data-mongodb : Between change from ($gt, $lt) to ($gte, $lte)spring-data-mongodb : 从 ($gt, $lt) 到 ($gte, $lte)
【发布时间】:2020-09-11 13:51:13
【问题描述】:

在我的存储库中,我添加了以下方法:

List<Event> findByEventDateBetween(LocalDate start, LocalDate end);

spring-data-mongo 生成的查询是:

[调试] 2020-09-11 15:39:59,550 - o.s.d.m.c.MongoTemplate - 查找使用 查询:{“eventDate”:{“$gt”:{“$date”:1577833200000},“$lt”: { "$date" : 1599775200000 } } } 字段:文档{{}} 类:类 xxxxxx

在使用 Between 关键字时,有没有办法告诉 Spring Data 使用 $gte$lte 而不是 $gt$lt

【问题讨论】:

    标签: java spring spring-data-mongodb


    【解决方案1】:

    您可以使用 @Query 注释,如下所示:

    @Query(value = "{'eventDate':{ $gte: ?0, $lte: ?1}}")
    List<Event> findByEventDateBetween(LocalDate start, LocalDate end);
    

    【讨论】:

    • 也谢谢你。
    【解决方案2】:

    下面的代码比较简单:

    List<Event> findByEventDateBetween(Range<LocalDate> dateRange);
    

    呼叫:

    findByEventDateBetween(Range.closed(start, end))
    

    参考:

    https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repository-query-keywords

    lower / upper bounds ($gt / $gte & $lt / $lte) according to Range
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 2014-10-29
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多