Wie kann man ein Datum in HQL (Hibernate) mit Joda Time abfragen?

8

Ich bin sicher, dass jemand, der mit HQL vertraut ist (ich bin selbst ein Neuling), diese Frage leicht beantworten kann.

In meiner Grails-Anwendung habe ich die folgende Domänenklasse.

%Vor%

In meiner HQL-Abfrage möchte ich Bücher abrufen, deren Veröffentlichungsdatum im Bereich date1 .. date2

enthalten ist

Zum Beispiel habe ich versucht:

%Vor%

Aber ich habe die Ausnahme ...caused by: org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: Das Fehler-Token zeigt auf das Datumsformat (z. B. 2009-11-27T21:57:18.010+01:00 oder Fri Nov 27 22:01:20 CET 2009 )

Ich habe auch versucht, Datum1 in eine Date-Klasse ohne Erfolg zu konvertieren

Was ist der korrekte HQL-Code? Sollte ich mit der patternForStyle-Methode in ein bestimmtes Format konvertieren (welches?) Oder gibt es einen anderen Weg, dies zu tun?

Danke,

Fabien.

    
fabien7474 04.12.2009, 21:53
quelle

3 Antworten

7

Ich bin kein Grails-Experte, aber in Java würden Sie normalerweise die Abfrageparameter date1 und date2 erstellen und sie wie folgt binden:

%Vor%

Ich bin mir sicher, dass du etwas Ähnliches in Grails machen kannst. Wenn nicht, formatiere deine Daten als yyyyMMddhhmmss (keine Leerzeichen) und setze sie in einfache Anführungszeichen - so behandelt Hibernate sie als Konstanten und MySQL konvertiert sie implizit in Daten.

    
ChssPly76 04.12.2009, 23:10
quelle
5

Ich habe von ChssPly darauf hingewiesen, dass Sie date1 und date2 als Abfrageparameter (positional oder named) deklarieren und sie dann binden sollten. Hier werden wir benannte Parameter verwenden. Die übliche Methode zum Übergeben benannter Abfrageparameter mit Grails ist über ein Map :

%Vor%

Überprüfen Sie die executeQuery() -Dokumentation für die Syntaxdetails von beiden Optionen.

    
Pascal Thivent 05.12.2009 08:42
quelle
3

Sie können Daten auch mit dem Datumsformat ISO8601 vergleichen, z. B .:

%Vor%

Ich habe das mit MySql als Back-End getestet. Denken Sie daran, die Daten als Zeichenfolge zu verpacken.

    
Phyxx 11.11.2011 02:56
quelle

Tags und Links