0

简而言之:

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

任何想法?

更新: 原来我应该为从ZonedDateTime(例如LocalDateTime,, )开始的每个子类型编写一个转换器LocalDateLocalTime但结果我应该为java.time.ZoneRegion它编写一个包私有的转换器。

4

1 回答 1

0

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

于 2016-09-09T14:41:41.917 回答