我想寫使用Hibernate 3和Oracle這樣的查詢10如何在具有Oracle數據庫的HQL查詢中使用當前日期?
from Alert alert
where alert.expiration > current_date()
order by alert.priority, alert.updated, alert.name
它創建這樣的SQL -
Hibernate: select alert0_.ANNOUNCEMENTS_ID as ANNOUNCE1_1_, alert0_.ANNOUNCEMENT
S_NAME as ANNOUNCE2_1_, alert0_.ANNOUNCEMENTS_PRIORITY as ANNOUNCE3_1_, alert0_.
ANNOUNCEMENTS_EXPIRATION as ANNOUNCE4_1_, alert0_.ANNOUNCEMENTS_UPDATE_DATE as A
NNOUNCE5_1_ from NYC311_ANNOUNCEMENTS alert0_ where (alert0_.ANNOUNCEMENTS_EXPIR
ATION>current_date()) order by alert0_.ANNOUNCEMENTS_PRIORITY , alert0_.ANNOUNC
EMENTS_UPDATE_DATE , alert0_.ANNOUNCEMENTS_NAME
我得到所有這些古怪的錯誤,如「失蹤的權利括號「,當有明顯完美平衡的括號時。
爲什麼Oracle在這方面嚇壞了?有沒有更好的方法來編寫我的HQL查詢?
Current_date和Current_timestamp是Oracle函數。 Current_date = Sysdate,但在函數調用後Oracle不需要()。 – 2009-02-05 21:32:36