2009-05-24 4 views
0

Ich habe Probleme herauszufinden, wie eine Reihe von Datensätzen zu löschen, wenn ein bestimmtes Feld ist weniger als das Datum auf dem SQL-Server ohne Verwendung von Tabellen oder Feldnamen.Löschen wo Datensatzfeld <getdate()

Da ich verwende MSSQL die Abfrage wie folgt aussehen würde:

DELETE FROM tickets WHERE expires < getdate() 

Wie würde ich diese gehen über das Erhalten Hibernate zu tun? Ich untersuche HQL, aber ich sehe keine Möglichkeit, getdate() anzugeben.

Antwort

0

Sie sollten wahrscheinlich definieren eine benannte SQL-Abfrage:

<sql-query name="DeleteExpiredTickets"> 
DELETE FROM tickets WHERE expires < getdate() 
</sql-query> 

Dann rufen:

session.getNamedQuery("DeleteExpiredTickets").executeUpdate(); 
+0

Ich kann es tun diesen Weg. Wohin geht das in der Konfigurationsdatei? –

+0

Wenn Sie hbms verwenden, müssen Sie es wie ein Klassen-Mapping hinzufügen. Ersetzen Sie einfach die Klassendefinition durch den obigen Code und Sie sind fertig. –