4
在我的應用程序需要得到數據庫的日期(sysdate
Oracle數據庫中的情況下),並將其與用戶輸入的日期比較(String
轉換爲java.util.Date
)獲得SYSDATE,從數據庫的時間和時間戳。從this forum我得到了以下代碼,這有助於在Oracle方言的情況下。如何使用Hibernate
public Date getDate() {
Session session = getHibernateTemplate().getSessionFactory().openSession();
SQLQuery query = session.createSQLQuery("select sysdate as mydate from dual");
query.addScalar("mydate", Hibernate.TIMESTAMP);
return (Date) query.uniqueResult();
}
而從this link得到了以下使用帶公式映射文件的方法。
<property name="currentDate" formula="(select sysdate from dual)"/>
這又是針對Oracle的。我認爲使用後面的方法更具有性能友好性,因爲我們可以從同一會話中獲得它,即不需要爲獲取日期打開另一個會話。
我正在尋找一個通用的解決方案,以從使用Hibernate的任何DBMS獲取日期,時間和時間戳。使用HQL是首選。希望這樣的解決方案可用。
我不認爲這個問題是艱難的。 37意見,但沒有答案! – WarFox 2011-06-06 05:48:40
顯然它是 - 我正在尋找相同的東西,但結束使用SQLQuery方法和sysdate,因爲我發現沒有其他選擇。 – simon 2012-09-07 07:48:56