当前位置:  开发笔记 > 编程语言 > 正文

如何在Spring Data MongoDB存储库中查询日期?

如何解决《如何在SpringDataMongoDB存储库中查询日期?》经验,为你挑选了1个好方法。

我的域名对象 -

Person{
    String name;
    Date born;
}

我有一个PersonRepository

PersonRepository{
    @Query(value="{'born': {$gt: new Date(?0)} }")
    findPerson(Date bornAfter);
}

我想抓住在某个约会后出生的所有人.但这不起作用.我错过了什么?mongodb控制台中"born"的日期格式如下

ISODate("2011-11-16T09:46:33.750Z")

我试图在data-jpa源代码中寻找一个单元/集成测试.找不到任何东西.有人能指点我吗?



1> Oliver Drotb..:

首先,您必须确保不要在此处将Spring Data JPA与Spring Data MongoDB混淆.我不认为问题的任何部分实际上是针对一些JPA的东西.以下是您的存储库的外观:

public interface PersonRepository extends Repository {

  // Query generated from the method name
  List findByBornGreaterThan(Date born);

  @Query("{'born' : { '$gt' : ?0 }}")
  List findPersons(Date born);
}

后者不适用于1.0.1.RELEASE,我已为此创建了一个票证,并已为即将发布的版本1.0.2.RELEASE和1.1.0.M1修复了它.所以你可能想抓住一个快照构建来试试它.我还创建了一个添加的票证BeforeAfter支持的关键字,以便更直观地使用LessThanGreaterThan当前允许.


对不起,我错误地引用了jpa.我正在使用spring-data mongodb.但是,您提出的解决方案不起作用.以下是{"born":{"$ gt":"2011年11月18日星期五18:05:07太平洋标准时间2011"}}的查询,它应该没有结果.我正在使用显式的@Query表单.此外,集成测试没有按日期测试的示例.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有