[英]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.