13

私のドメイン オブジェクト -

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 ソースで、これの単体/統合テストを探してみました。見つかりませんでした。誰かが私にそれを指摘できますか?

4

2 に答える 2

11

したがって、最初に、ここで 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 用に修正済みです。そのため、スナップショット ビルドを取得して試してみることをお勧めします。また、現在許可されているよりも直感的に使用できるように、サポートされているキーワードに追加するためのチケットも作成しました。BeforeAfterLessThanGreaterThan

于 2011-11-18T08:55:06.653 に答える