我需要将序列化的 Java 对象(从 Redis 获取)转换为扩展 com.mongodb.BasicDBObject (mongo-java-driver) 的 Java 模型。
class Member extends BasicDBObject {
public Member(DBObject doc) {
super(doc.toMap());
}
public Member(BasicDBObject doc) {
super(doc);
}
...
}
我从 Redis 得到的是 ByteString 形式。
总而言之,我需要转换 ByteString -> BasicDBObject
最佳答案
您应该使用中间模型来持久化您的模型。 MongoDB 的 BasicDBObject
基于 LinkedHashMap
,但很有可能您最终得到的内部数据结构不是 Java 可序列化的。
DBObject
和 BSONObject
都没有扩展 Serializable
。我建议您将 JSON 存储在 Redis 中。一个捷径可能是在 Redis 中存储 BSON 而不是 JSON(参见 BasicBSONEncoder#encode
和 BasicBSONDecoder#readObject
)。
关于java - 将 Redis ByteString 转换为 BasicDBObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600992/