2011-02-08 58 views
4

您好我想一個字段在我的Java類問題與@Temporal(TemporalType.DATE)

@Column(name = "date_of_birth") 
@Temporal(TemporalType.DATE) 
private Date dateOfBirth; 

在我的表映射到一個字段:

date_of_birth date, 

,但現在當我嘗試運行我的應用程序有一個例外:

Caused by: org.hibernate.HibernateException: Wrong 
column type in public.users for column date_of_birth. 
Found: date, expected: timestamp 

這是我的配置文件:

dataSource.driverClassName=org.postgresql.Driver 
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect 
hibernate.hbm2ddl.auto=validate 
hibernate.show_sql=false 

這裏有什麼問題?

感謝 的Dawid

+0

由於某種原因,「@ Temporal」被忽略。 – axtavt 2011-02-08 16:03:43

回答

1

我認爲在數據庫字段類型必須是timestamp,而不是date。但這可能不是你想要的,因爲你正在存儲一個出生日期。

-1

相當有點舊,但是正在尋找一些@Temporal的用法,並且已經出現了5年前的問題;)。

問題是顯而易見的:)系統錯誤堆棧跟蹤告訴你:org.hibernate.HibernateException:錯列式在 public.users列DATE_OF_BIRTH發現:

「所致。迄今爲止,預期: 時間戳「

你正試圖把Date對象到您的數據庫期望一個時間戳一個 - >您TemporalType是DATE類型和DB預計將TIMESTAMP的

@Column(名稱= 「DATE_OF_BIRTH」)

@Temporal(TemporalType.DATE)

私人日期DATEOFBIRTH;

+0

我不知道這是不是一個笑話 - 我們都可以閱讀。該字段在其表格中定義爲日期。他在他的Java源代碼中使用了java.util.Date和TemporalType.DATE。爲什麼數據庫在總是定義日期時需要時間戳? – 2016-06-22 08:23:48