-1

OffsetDateTime が DATE として保存された OffsetDateTime インスタンスを含む org.bson.Document を mongodb に保存したいと考えています。現在、オブジェクトとして保存されています。

私は独自のカスタム MongoDatabaseFactory を使用しています。

これは私のテストデータです。org.bson.Document を作成しました。次のタイプのドキュメントに追加: java.time.OffsetDateTime、java.time.Instant、および java.util.Date。

MongoTemplate インスタンスを介して monogdb に保存されます。Instant と Date の両方が MONGO に DATE として保存されます。ただし、OffsetDateTime はオブジェクトとして保存されています。DATEとして保存したい。

Google を検索したところ、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

2 つのコンバーターを作成しました。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 に答える