MongoDB中的ZonedDateTime通过Morphia

时间:2016-08-26 08:24:00

标签: java mongodb java-8 morphia zoneddatetime

简而言之:

  • java.time.ZonedDateTime没有args构造函数(实际上它没有 所有的构造函数)
  • 为了克服这个问题,我应该为Morphia
  • 写一个ZonedDateTimeConverter
  • 如果我尝试保存并加载我的ZonedDateTime没有转换器,Morphia 将完整的ZonedDateTime对象保存为DBObject,这很酷,因为 我可以读取所有字段并从中启动ZonedDateTime对象 它,但我在加载时遇到异常:No usable constructor for java.time.ZonedDateTime
  • 如果我尝试使用转换器保存并加载ZonedDateTime,我得到了 另一个例外:Can't find a codec for class java.time.LocalDateTime。我开始玩转换器 在this文章但没有任何结果。
  • 因此,如果我没有转换器,我可以保存,但无法加载,如果我有转换器,我甚至无法保存,因为缺少编解码器。

有什么想法吗?

更新 原来我应该为从ZonedDateTime开始的每个子类型编写转换器(例如LocalDateTimeLocalDateLocalTime),但事实证明我应该为{编写转换器{1}}这是包私有的。

1 个答案:

答案 0 :(得分:0)

我上周针对1.3版本向Morphia推出了对更常见的Java 8日期时间类型的支持。请参阅问题here和链接的提交。如果你需要的类型没有列出,请提交一个Morphia问题,我会尽量确保它也包含在1.3中。