Удалить поле записи где <getdate () - PullRequest
0 голосов
/ 25 мая 2009

У меня возникают проблемы с выяснением, как удалить набор записей, когда конкретное поле меньше, чем дата на сервере SQL без использования таблиц или имен полей.

Поскольку я использую MSSQL, запрос будет выглядеть примерно так:

DELETE FROM tickets WHERE expires < getdate()

Как мне заставить Hibernate сделать это? Я смотрю на HQL, но не вижу способа указать getdate().

Ответы [ 2 ]

0 голосов
/ 25 мая 2009

Вы, вероятно, должны определить именованный запрос SQL:

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

Тогда звоните:

session.getNamedQuery("DeleteExpiredTickets").executeUpdate();
0 голосов
/ 25 мая 2009

Полагаю, вы можете использовать конфигурацию query.substitution. Взгляните на этот пост и ссылки в ответе:

Получение DATEPART по HQL или критериям?

...