带有java.time的mongojack

xzv2uavs  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(226)

在以下版本的库中使用mongojack,我想将一个pojo存储到mongo(azure mongo api for cosmos,3.6)中,并将一个使用java.time的字段序列化为mongo date 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作为字段类型(数据存储为string),它会正确地序列化到pojo上的instant字段或从中序列化,但在mongo中数据不会存储为预期的类型。
我是不是漏掉了什么明显的东西?查看mongo-jack,它定义的反序列化程序是从jackson.databind扩展stddeserializer,后者使用这些parsedate方法转换为java.util.date—它定义的唯一java.time反序列化程序是instantdeserializer,但正如前面提到的,它没有以我想要的格式存储。
我根据文档调用了ObjectMapPerConfigure.configureobjectmapper,它添加了javatime模块,设置了特性和序列化程序等,https://github.com/mongojack/mongojack/blob/9e2339d02624b1357ecab6e27c35d5db96bd7d60/src/main/java/org/mongojack/internal/mongojackmodule.java#l46
这是开箱即用,还是我需要编写一些序列化程序来支持这一点?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题