テーブルまたはフィールド名を使用せずに、特定のフィールドがSQL サーバーの日付よりも小さい場合に、一連のレコードを削除する方法がわかりません。
私は MSSQL を使用しているので、クエリは次のようになります。
DELETE FROM tickets WHERE expires < getdate()
Hibernateにこれをさせるにはどうすればよいですか?HQL を調べていますが、指定する方法がわかりませんgetdate()
。
テーブルまたはフィールド名を使用せずに、特定のフィールドがSQL サーバーの日付よりも小さい場合に、一連のレコードを削除する方法がわかりません。
私は MSSQL を使用しているので、クエリは次のようになります。
DELETE FROM tickets WHERE expires < getdate()
Hibernateにこれをさせるにはどうすればよいですか?HQL を調べていますが、指定する方法がわかりませんgetdate()
。
おそらく、名前付き SQL クエリを定義する必要があります。
<sql-query name="DeleteExpiredTickets">
DELETE FROM tickets WHERE expires < getdate()
</sql-query>
次に呼び出します。
session.getNamedQuery("DeleteExpiredTickets").executeUpdate();
query.substitutions 構成を使用できると思います。この投稿と回答のリンクを見てください。