HIbernate中經過Query.setDate()查詢獲得的數據有問題,具體以下: sql
Query query = session.createQuery("from Member where createDate >=?"); 數據庫
query.setDate(0, new Date()); session
查詢獲得結果不到正確的數據,在數據庫中經過sql語句查詢:
select *
from member
where create_date>='2007-07-13 19:56:00' 能獲得正確的結果;
由於Query的setDate()方法賦值的時候,HIbernate默認把賦值日期後面的時分秒截取掉,只留下年月日,若是隻是經過">" or "<" 進行日期比較徹底Okey,可是帶上"="就不行了,有三種方法能夠解決這個問題。
其1、經過setCalendar()賦值
其2、經過setTimestamp()賦值
其3、拼接字符串。String hql=
"from Member
where createDate ='"+(new Date())+"'";