Ситуация примерно такая:
В таблице базы данных PostgreSQL есть поле dateAdded
, которое равно timestamp
.
Объект модели Pojo сопоставляет это поле как
class MyModel{
org.joda.time.DateTime dateAdded;
}
Моя реализация Dao находится в шаблоне Spring JDBC и выглядит следующим образом:
SqlParameterSource parameters = new BeanPropertySqlParameterSource(patient);
jdbcInsert.execute(parameters);
Я читаю модель с клиента и создаю объект, используя @Model
. Пока все в порядке. Когда я выполняю это, база данных выдает исключение, говорящее:
[Edit Erwin]: Оказывается, исключение исходит не из базы данных.
org.postgresql.util.PSQLException: Bad value for type timestamp : 2011-10-10T21:55:19.790+03:00
Я не хочу выполнять форматирование вручную, реализуя полный оператор INSERT, поскольку задействовано много полей.
Каково наилучшее возможное решение здесь? Есть ли способ настроить toString()
из DateTime
на все вызовы. Я также думал о создании унаследованного класса от DateTime, но ... ммхх ... это финал.
--
Редактировать
Согласно Эрвину, я проверил значение DateTime «2011-10-10T21:55:19.790+03:00», вставив его в фиктивную таблицу, и оно работает. Но не могу работать с JDBC. Что-то связанное с драйвером JDBC?
'2011-10-10 21:55:19.790+03:00'
.T
, будучи совершенно законным, необычен. - person Erwin Brandstetter   schedule 11.10.2011