Отображение даты Oracle для объекта Java с использованием Hibernate

Я получаю сообщение "literal не соответствует строке формата".

Например, вот некоторые методы из класса Java:

public String getDateTime();
public void setDateTime(String date_time);

Вот сопоставление из конфигурационного файла Hibernate для этого класса:

<property name="dateTime" column="date_time">

и вот DDL для этого столбца:

 CREATE TABLE "SCHEMA"."TABLE_NAME" 
   (    
    "DATE_TIME" DATE, 
    etc.
   )

Я попробовал установить тип = "дата" и "временная метка" (не в то же время) в качестве атрибута свойства в конфигурации hibernate, а затем изменить тип Java из String в Date, но это дало мне другое ошибка. Я прочитал что-то о привязке параметра, но не мог сделать головы или хвосты.

Когда я комментирую это свойство из конфигурации, все остальное работает, поэтому я уверен, что моя проблема. Досадно, что у меня есть другое сопоставление таблицы/класса с, по-видимому, одним и тем же отображением Oracle Date- > Java String, которое не дает мне этой проблемы.

Ответ 1

Вам было бы лучше использовать класс даты Java.util в качестве свойства, чтобы отразить столбец даты оракула. ​​

Class blah{
private Date dateTime;

public Date getDateTime();
public void setDateTime(Date dateTime);

blah(){}

}

Какова была ошибка при использовании Date в качестве свойства класса Java?

Ответ 2

Тип атрибута dateTime должен быть Timestamp или Date, который должен автоматически преобразовывать дату и время Oracle в него. Я не вижу смысла сохранять дату как String, так как вы должны включать форматирование.