我想将包含 OffsetDateTime 实例的 org.bson.Document 保存到 mongodb,其中 OffsetDateTime 保存为 DATE。它当前保存为对象。
我正在使用我自己的自定义 MongoDatabaseFactory。
这是我的测试数据。我创建了一个 org.bson.Document。附加到 Document 这些类型:java.time.OffsetDateTime、java.time.Instant 和 java.util.Date。
通过 MongoTemplate 实例保存到 monogdb。Instant 和 Date 都在 mongo 中保存为 DATE。但是 OffsetDateTime 被保存为一个对象。我希望它保存为 DATE。
我搜索了谷歌,发现了许多问题/答案和网站声明使用 CustomConverters。
43544908/usage-of-offsetdatetime-with-spring-boot-and-mongodb-results-in-mappingexception
41127665/zoneddatetime-with-mongodb/
27091418/store-java-8-instant-as-bson-date-using-springdata-mongodb
我创建了两个转换器。OffsetDateTime -> 日期和日期 -> OffsetDateTime。使用@WritingConverter 和@ReadingConverter 进行注释。实例化 MongoCustomConversions,添加我的转换器,在 MappingMongoConverter 上设置转换,并传递给 MongoTemplate 的构造函数。
我已经尝试了许多排列设置 MongoTemplate 上的转换。没有工作。我已经在 eclipse 中调试了这个,但还没有找到转换文档的位置。
这是我在 mongodb 中看到的。mongodb 记录的快照 任何帮助表示赞赏。