このページ( http://docs.spring.io/spring-data/jpa/docs/current/reference/html/jpa.repositories.html )に記載されている例を見ていますメソッドの命名、次のような複雑なチェーンメソッド名を作成することは可能ですか?
findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc
彼らが与える例では、1つの値に対してのみOrderByを実行しています。上記の例では、ProgDate
とStartTime
は2つの個別の値になります。
コツは、方向キーワードAsc
およびDesc
を使用して、ソートするプロパティを単純に区切ることです。したがって、おそらくクエリメソッドに必要なのは次のようなものです。
…OrderByProgDateAscStartTimeAsc
Asc
によって最初のプロパティ定義を終了し、次のプロパティを使用し続けることに注意してください。
一般的に、メソッド名が特定の長さまたは複雑さを超えたら、@Query
ベースのクエリに切り替えることをお勧めします。主な理由は、クライアントがこれらの非常に長いメソッドを呼び出すのは厄介だからです。 @Query
を使用すると、クエリ言語の完全な能力に加えて、クエリの意図を表現するためのより高レベルの言語である可能性のある適切なサイズのメソッド名を取得できます。
はい、可能です。
これを試して:
findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc(String programme, String director, Date progStart, Date progEnd);
私はコードをテストしていませんが、すでにやったことによると、動作するはずです。