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