Spring Data JPA - Wie kann ich abrufen von Daten aus einer Spalte Datum nur mit Monat und Tag?

Habe ich eine einfache Spring Data JPA-Projekt arbeiten mit mysql, und ich brauche, zu Holen alle Register, die mit dem Tag und dem Monat. Die Spalte die ich brauche, um filter ist vom Typ Datetime.

1935-12-08 00:00:00

Wenn ich das tun möchte in einer db funktioniert es einwandfrei:

SELECT * FROM my_database.event where event_date LIKE '%-12-08%';

Behandelt er das Datum als string an. Jetzt muss ich das in meiner repository-doch nichts scheint zu funktionieren. Ich habe versucht, die basic-one:

List<Event> findByEventDateLike(
        @Param("eventDate") Date eventDate);

aber Sie sagt, es gibt eine illegal argument exception, da es ein Date-Objekt. Ich habe versucht, andere Kombinationen, aber anscheinend spring data jpa nicht vergleichen können Termine mit unvollständigen Informationen.

HINWEIS: um es sauber Zu halten versuche ich zu vermeiden, @Query-Sätzen, aber wenn es der einzige Weg zu gehen, ist es eine gültige Antwort.

Wie kann ich es tun?

  • Wenn Sie möchten, zu verwenden wie '%%' Sie haben, ändern Sie den Typ auf String
  • Wie etwa change-Methode name findByEventDateGreaterThanAndEventDateLessThan(Date startDate, Date endDate)
  • Sie können mehr details finden Sie hier docs.Frühling.io/spring-data/jpa/docs/1.5.0.VERÖFFENTLICHUNG/Referenz/...
  • Ja das problem mit, dass in allem, dass ich brauche Sie, um zurückzukehren, so etwas wie "On this day in history", also sollte Es wieder alles, was passierte an diesem Tag durch die Jahre.
  • gibt es einen Weg, es zu tun, ohne änderung meiner eventDate Eigenschaft meiner Person? Ich verwende es, wie es in anderen Anrufe.
  • könnte sein, erstellen Sie eine native Abfrage und Analyse von Datum auf string wie 2017-12-08

InformationsquelleAutor Matias Diez | 2017-12-08
Schreibe einen Kommentar