繁体   English   中英

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

[英]How do I query for dates in Spring Data MongoDB repository?

我的域名对象 -

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源代码中寻找一个单元/集成测试。 找不到任何东西。 有人能指点我吗?

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

public interface PersonRepository extends Repository<Person, Long> {

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

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

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

使用@Query注释或使用方法名称中的关键字。 我建议只要坚持方法名称中的关键词。 这意味着可以删除此注释。 手段, List<Person> findByBornGreaterThan(Date born); 只会工作。 您可以参考https://docs.spring.io/spring-data/mongodb/docs/1.2.0.RELEASE/reference/html/repositories.html以获得更多说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM