[英]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修复了它。 所以你可能想抓住一个快照构建来试试它。 我还创建了一个向支持的关键字添加Before
和After
的票证,以便比LessThan
和GreaterThan
目前允许的更直观。
使用@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.