В двух словах:ZonedDateTime в MongoDB через морфий
java.time.ZonedDateTime
не имеет ARGS конструктора (на самом деле это не имеет
конструктора вообще)- , чтобы преодолеть это, я должен написать
ZonedDateTimeConverter
для морфия - , если я попытаюсь сохранить и загрузить мой
ZonedDateTime
без конвертера, Morphia сохраняет весьZonedDateTime
объект какDBObject
, который крут, потому что Я мог бы прочитать все поля и initia т.е объект ZonedDateTime из , но я получил исключение на загрузку:No usable constructor for java.time.ZonedDateTime
- если я пытаюсь сохранить и загрузить
ZonedDateTime
с преобразователем, я получил еще одно исключение:Can't find a codec for class java.time.LocalDateTime
. Я начал играть с конвертерами на основе на странице this, но без каких-либо результатов. - Так что если у меня нет конвертера, я могу сохранить, но не могу загрузить, если у меня есть конвертер, я даже не могу сэкономить из-за отсутствия кодеков.
Есть идеи?
UPDATE: Оказались, что я должен написать конвертер для каждого подтипа началось с ZonedDateTime
(например LocalDateTime
, LocalDate
, LocalTime
), но оказалось, что я должен написать конвертер для java.time.ZoneRegion
который является пакетом-частного.
Я предполагаю, что это популярный прецедент, но если мы хотим заблокировать его до определенного момента времени и невосприимчивы к летнему сбережению или разным временным часам сервера, похоже, что способ java8 делать вещи - это ZonedDateTime.now (ZoneOffset.UTC)? Как мы должны использовать это с морфией, чтобы он был сохранен и последовательный/десериализуемый? – Justin