2009-11-30 122 views
2

我有一個列表類型爲Date的MySQL表。在我的hibernate映射文件中,我已經將此列映射爲java.util.Date類型。現在在HQL中嘗試根據日期平等檢索對象時,如果使用新的Date()設置Date,我不會得到任何結果。如果通過將小時,分鐘和秒數設置爲零來標準化日期,我會得到結果。這是必需的,因爲我已經聲明SQL列類型是一個日期而不是時間戳?休眠HQL和日期

回答

2

嘗試java.sql.Date

希望這會幫助你解決日期平等問題。

RDJ

+0

在映射類型? – Abhi 2009-11-30 11:10:15

+0

「我與列類型爲日期的一個MySQL表在我的Hibernate映射文件我已經映射此列java.util.Date類型。」 - 而不是試圖java.sql.Date – Richie 2009-11-30 11:58:45

+0

感謝。這是有效的,但是,你是否知道爲什麼即使列類型是Date,它也不能處理java.util.date類型?如果是我知道的時間戳,但是用Date這個東西讓我感到困惑。 – Abhi 2009-11-30 14:30:20

0

我能夠明確設置@Type使用java.util.Date與SQL Server日期列:

@Type(type="date") 
public java.util.Date getDate() { 
    return date; 
} 

沒有註解,我得到

java.lang.IllegalArgumentException:時間戳格式必須爲yyyy-mm-dd hh:mm:ss [.fffffffff]

with Hibernate 3.5.1-final

+0

對於JPA,我認爲你應該使用'@Temporal(DATE)' – 2010-05-13 15:43:54

+0

@Temporal(TemporalType.DATE)也適用於我。這裏有一些文檔:http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#entity-mapping-property,使它看起來像更標準 - 謝謝,帕斯卡爾! – Andrew 2010-05-13 22:23:17