您好我想在我的Java类中映射一个字段
@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 :(得分:1)
我认为数据库中的列类型必须是timestamp
而不是date
。但这可能不是你想要的,因为你正在存储出生日期。
答案 1 :(得分:-1)
相当古老,但是正在寻找@Temporal的一些用法并且已经满足了你5岁的问题;)。
问题很明显:)系统错误堆栈跟踪告诉你:
"引起:org.hibernate.HibernateException:错误的列类型 date.users用于列date_of_birth。发现:日期,预计: 时间戳"
您正在尝试将Date对象放入需要TimeStamp的DB中 - >你的TemporalType是DATE类型,DB期望是TIMESTAMP
@Column(name =" date_of_birth")
@Temporal(TemporalType.DATE)
私人日期dateOfBirth;