Я пытаюсь использовать компонент расписания Primefaces, я обнаружил проблему при вставке даты () в базу данных (postgresql
), существует проблема несовместимости между типом даты java и postgres с меткой времени, которую я не могу представить решать:
org.hibernate.exception.DataException nested exception is:
ERROR: invalid input syntax for type timestamp :
"16:00:00.747000 +00:00:00"
Вот функция, которую я тестировал при вставке в базу данных:
@Test
public void testEdit() {
Event event = new Event();
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.PM);
t.set(Calendar.DATE, t.get(Calendar.DATE) + 4);
t.set(Calendar.HOUR, 4);
event.setStartDate(t.getTime());
sessionService.save(event);
}
1 ответ
Похоже, ваши сопоставления Hibernate неверны. Вам нужно сопоставить столбец как временное поле «отметки времени», но похоже, что ваш компьютер отправляет только время. В метке времени есть компонент даты, но в "16:00:00.747000 +00:00:00"
нет даты.
Вы не показали сопоставление сущности, поэтому трудно быть более конкретным. Если вы используете аннотации сопоставления JPA2, вы должны написать:
@Temporal(TIMESTAMP)
TIME
в столбце TIMESTAMP
. Используйте столбец TIME
в базе данных или сопоставление TIMESTAMP
, чтобы соответствовать тому, что действительно находится в базе данных.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.