簡體   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