gpt4 book ai didi

java - 在 Java 中加载 _id MongoDB 我的对象

转载 作者:行者123 更新时间:2023-12-02 07:29:17 25 4
gpt4 key购买 nike

Java我有以下问题。我有一个移动对象。

Calss object mobile
private ObjectId _id;
private String number;
private String nroMatricula;

获取和设置等

恢复 MongoDB 时。

String id = "5089e5fde4b07bf6f368366b";
DBObject soid = new BasicDBObject("_id", new ObjectId(id));
String s = MongoAccess.getSingleton().GetOneValueByKey("mobile", soid);
Mobile m = js.fromJson(s, Mobile.class);

public String GetOneValueByKey(String thecollection, DBObject key)
{
String result = null;
try {
DBCollection collection = MDB.getCollection(thecollection);
result = JSON.serialize(collection.findOne(key));
} catch (Exception e) {
Logger.getLogger(MongoAccess.class.getName()).log(Level.SEVERE, e.toString());
}
return result;
}

正确恢复数据但_id属性。我加载数据库中的数据,但它生成一个新的 id。这应该是正确的_id“5089e5fde4b07bf6f368366b”,但这不是该对象的费用。我可以帮忙。

最佳答案

解决方案

JsonDeserializer<ObjectId> des = new JsonDeserializer<ObjectId>() {

@Override
public ObjectId deserialize(JsonElement je, Type type, JsonDeserializationContext jdc) throws JsonParseException {
return new ObjectId(je.getAsJsonObject().get("$oid").getAsString());
}
};

Gson gson = new GsonBuilder().registerTypeAdapter(ObjectId.class, des).create();

关于java - 在 Java 中加载 _id MongoDB 我的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com