Проблема с @Temporal (TemporalType.DATE) - PullRequest
4 голосов
/ 08 февраля 2011

Привет! Я хочу сопоставить поле в своем классе 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

В чем здесь проблема?

Спасибо, Давид

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Я думаю, что ваш тип столбца в базе данных должен быть timestamp вместо date. Но это может быть не то, что вы хотите, поскольку вы храните дату рождения.

0 голосов
/ 12 апреля 2016

Довольно старый, но искал какое-то использование @Temporal и натолкнулся на ваш вопрос уже 5 лет;).

Проблема очевидна :) Системная ошибка трассировки стека сообщает вам:

"Причина: org.hibernate.HibernateException: неверный тип столбца в public.users для столбца date_of_birth. Найдено: date, ожидаемый: timestamp "

Вы пытаетесь поместить объект Date в вашу БД, которая ожидает TimeStamp единицу -> ваш TemporalType имеет тип DATE, а DB ожидает TIMESTAMP

@ Column (name = "date_of_birth")

@ Temporal (TemporalType.DATE)

частная дата dateOfBirth;

...