2009-10-28 3 views
7

Kann mir jemand auf ein Beispiel zur Verwendung CURRENT_DATE in einer JPA-Abfrage verweisen?Beispiel für die Verwendung von CURRENT_DATE in JPA-Abfrage

CURRENT_DATE ist in JPA angegeben, aber ich konnte es nicht funktionieren. Ich bekomme immer die unexpected token [CURRENT_DATE] Ausnahme. Da es in JPA angegeben ist, sollten alle Anbieter dies richtig machen?

Ich benutze EclipseLink 2.0 BTW.

Antwort

12

Es kann wie so verwendet werden:

Query query = manager 
    .createQuery("SELECT c FROM CITIES c WHERE c.founded = CURRENT_DATE"); 
for (Object city : query.getResultList()) { 
    System.out.println(city); 
} 

... wo gegründet ist eine zeitliche Art:

@Column(name = "FOUNDED") 
    @Temporal(TemporalType.DATE) 
    private Date founded = new Date(); 

Nicht ein gutes Beispiel, aber Sie bekommen die Idee. Ich benutze Eclipselink 1.1.2

+0

Sie sind wirklich nah dran. Ich bin so weit gekommen, kurz bevor ich deine Antwort gesehen habe. Ich versuche etwas zu tun wie Wählen Sie x aus Tabelle x wo x.id = 1 und (x.lastModified-CURRENT_DATE)> = 365 Ich muss Berechnung für Daten verwenden. – javydreamercsw

+0

Ist es möglich, Datetime Arithmetik mit JPA zu tun? Sie müssten eine Funktion haben, um die Differenz in Tage umzuwandeln (und nicht in Minuten oder Monate oder Jahrtausende usw.). Mir sind solche Funktionen nicht bekannt. Führen Sie die Datumsarithmetik in Java aus und wählen Sie dann nur den Vergleich mit dem resultierenden Bereich aus. – McDowell

+0

Ich denke, das ist ein Fehler oder fehlende Funktionalität von JPA. Ich muss es wohl so machen. Vielen Dank! – javydreamercsw

3

Wenn Sie die Expression Framework verwenden, gibt es die Expression currentDateDate() Methode auf dem Expression (org.eclipse.persistence.expressions.Expression) Objekt.

+0

Ich muss es versuchen, aber ich versuchte wirklich, generische JPA-Abfragen zu vermeiden, um Abhängigkeiten vom Persistenzanbieter zu vermeiden. – javydreamercsw

4

Die Antwort auf diese Frage war das Abrufen der Werte über JPA und dann die Mathematik in Plain Java.

Verwandte Themen