我有一個關于 ObjectId 快取的問題。
我正在使用 redis 快取 mongoDB 檔案,當我檢查快取的值時,只有 ObjectId 的 timeStamp 和 date 被快取,如下所示,并且使用與實際檔案的 ObjectId 不同的值來檢索它們。
"id":{
"@class":"org.bson.types.ObjectId",
"timestamp":1658025133,
"date":["java.util.Date",1658025133000]
},
實際物件 ID:6311ba39c31566544746d31b
作為快取結果檢索到的 ObjectId:6311ba3911d1d82cb7892c73
如何快取它以便將其作為實際的 ObjectId 值獲取?
uj5u.com熱心網友回復:
您需要添加自定義序列化程式以將 ObjectId 序列化為 String
@JsonComponent
class ObjectIdSerializer : StdSerializer<ObjectId>(ObjectId::class.java) {
override fun serialize(value: ObjectId, gen: JsonGenerator, provider: SerializerProvider) {
return gen.writeString(value.toString())
}
}
然后
objectMapper().registerModule(SimpleModule().addSerializer(ObjectIdSerializer()))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504155.html
