Отображение даты 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, так как вы должны включать форматирование.