在我的应用程序中,我需要获取数据库日期(在Oracle DB的情况下为sysdate)并将其与用户输入日期(String转换为
java.util.Date)进行比较.从
this forum开始,我得到了以下代码,这有助于Oracle方言.
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获得了以下使用公式的映射文件的方法.
这也是Oracle特有的.我认为使用后面的方法更加性能友好,因为我们可以从同一个会话中获取它,即不需要为了获取日期而打开另一个会话.
我正在寻找一个通用的解决方案来从使用Hibernate的任何DBMS获取日期,时间和时间戳.使用HQL是首选.希望有这样的解决方案.