У меня есть приложение Grails 2.5.3, которое подключается к PostgreSQL, и я хочу сохранить объект java Date
или Calendar
в базе данных и включить часовой пояс ,Хранение даты, времени и часового пояса в PostgreSQL с Grails и GORM
На основе PostgreSQL Documentation типа метки времени по умолчанию делает не включают часовой пояс, так что вам нужно использовать timestamptz
типа включить часовой пояс.
К сожалению, когда я пытаюсь установить это в закрытии класса домена, он терпит неудачу. Я пытаюсь использовать это:
createdDate type: 'timestamptz'
И ошибка я получаю это:
nested exception is org.hibernate.MappingException: Could not determine type for: timestamptz
К сожалению, список Hibernate types, кажется, не включают в себя ничего, что бы сопоставить это значение. Связанные с датами: date
, time
, timestamp
, calendar
, calendar-date
. Я тестировал каждый из них, и ни один из них не создает нужный timestamp with time zone
в Postgres.
Для этого есть статьи, которые говорят о создании пользовательского Hibernate UserType
, но похоже, что это будет довольно распространенный случай использования, и я не могу не думать, что есть что-то, что должно позволить мне получить эту работу из коробки.
Возможно сохранение временной метки и часового пояса в виде двух отдельных свойств/столбцов. –