MongoJack与java.time

MongoJack与java.time,java,mongodb,jackson,mongojack,Java,Mongodb,Jackson,Mongojack,在以下版本的库中使用MongoJack,我想将POJO存储到Mongo(Azure Mongo API for Cosmos,3.6)中,并有一个使用java.time序列化为Mongo日期ISODate()格式的字段 mongodb驱动程序同步4.0.4 jackson数据绑定2.10.1 jackson数据类型jsr310 2.10.1 mongojack 4.0.2 如果我在POJO上使用java.util.Date,那么一切都会按预期工作——数据以以下格式存储在Mongo中 但是,

在以下版本的库中使用MongoJack,我想将POJO存储到Mongo(Azure Mongo API for Cosmos,3.6)中,并有一个使用java.time序列化为Mongo日期ISODate()格式的字段

  • mongodb驱动程序同步4.0.4
  • jackson数据绑定2.10.1
  • jackson数据类型jsr310 2.10.1
  • mongojack 4.0.2
如果我在POJO上使用java.util.Date,那么一切都会按预期工作——数据以以下格式存储在Mongo中

但是,如果我使用java.time.LocalDateTime,那么数据将作为字符串存储在Mongo中。我想在Mongo中将其存储为ISODate类型,我不想在POJO上使用java.util.Date。类似地,如果我使用Instant作为字段类型(数据存储为字符串),它会正确地序列化POJO上的Instant字段,但在Mongo中数据不会存储为预期类型

我是不是漏掉了什么明显的东西?查看Mongo Jack,它定义的反序列化程序是从jackson.databind扩展StdDeserializer,该文件用于转换为java.util.Date,这是它唯一使用的java.time反序列化程序,但如前所述,它没有以我想要的格式存储

我调用了ObjectMapPerConfigure.configureObjectMapper,它添加了Javatime模块、设置功能和序列化程序等


这应该是开箱即用的,还是需要编写一些序列化程序来支持这一点?

我现在采用了类似的方法,一个将POJO LocalDateTime转换为日期类型的小映射,然后让MongoJack序列化程序处理它(反序列化时也可以使用它)。请务必让我知道是否有更好的方法…
LocalDateTime
无法按设计序列化为
ISODate
——它们是不同的。但是
Instant
应该以与
java.util.Date
相同的方式序列化。看起来像是mongojack中的一个缺陷。目前我采用了类似的方法,一个小型映射,将POJO LocalDateTime转换为日期类型,然后让mongojack序列化程序处理该类型(反序列化则相反)。请务必让我知道是否有更好的方法…
LocalDateTime
无法按设计序列化为
ISODate
——它们是不同的。但是
Instant
应该以与
java.util.Date
相同的方式序列化。看起来是mongojack的一个缺陷。