-1

我想将包含 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 记录的快照 任何帮助表示赞赏。

4

1 回答 1

0

为了让它工作,我还必须添加一个文档提供程序来处理 OffsetDateTimes。

https://jira.mongodb.org/browse/JAVA-2829

于 2022-02-02T22:53:54.527 回答