Ich schaue mir die Beispiele auf dieser Seite ( http://docs.spring.io/spring-data/jpa/docs/current/reference/html/jpa.repositories.html ) an Es ist möglich, einen komplexen Namen für eine Kettenmethode zu erstellen, z
findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc
In dem von ihnen angegebenen Beispiel führen sie nur ein OrderBy für einen Wert aus. Im obigen Beispiel sind ProgDate
und StartTime
zwei separate Werte.
Der Trick besteht darin, die zu sortierenden Eigenschaften einfach durch die Richtungsschlüsselwörter Asc
und Desc
abzugrenzen. Also, was Sie wahrscheinlich in Ihrer Abfragemethode wollen, ist etwa:
…OrderByProgDateAscStartTimeAsc
Beachten Sie, wie wir die erste Eigenschaftsdefinition mit Asc
abschließen und mit der nächsten Eigenschaft weitermachen.
Generell empfehlen wir die Umstellung auf @Query
basierte Abfragen, sobald Methodennamen eine bestimmte Länge oder Komplexität überschreiten. Der Hauptgrund dafür ist, dass es für Kunden umständlich ist, diese sehr langen Methoden aufzurufen. Mit @Query
Sie erhalten eher die volle Leistungsfähigkeit der Abfragesprache und einen angemessen großen Methodennamen, der möglicherweise eine höhere Sprache aufweist, um die Absicht der Abfrage auszudrücken.
Ja, es sollte möglich sein:
Versuche dies:
findByProgrammeAndDirectorAndProgDateBetweenOrderByProgDateStartTimeAsc(String programme, String director, Date progStart, Date progEnd);
Ich habe den Code noch nicht getestet, aber nach meinen bisherigen Erfahrungen sollte er funktionieren.