时间:2024-01-09
如题,当使用findAndModify更新数据的莫名其妙出现如题错误。
例子:
Query q =new Query();
q.addCriteria(Criteria.where("_id").is(JSON.opt("id")));
Update u =new Update();
u.set("class_name", JSON.opt("class_name"));
u.set("class_anno",JSON.opt("class_anno"));
u.set("package_name", JSON.optString("package_name"));
u.set("inject_interface_class", JSON.optJSONArray("injectClass"));
mongoTemplate.findAndModify(q, u, JSONObject.class,"mongo_table_name");
//mongoTemplate.updateFirst(q, u, "mongo_table_name");
mongo的修改操作,注意使用区别
本问题是因为触碰到关键词了。class_name 在mongoTemplate.findAndModify内部会被转为class.name,导致反序列化失败,具体原因可以debug查看。 解决方案1、使用updateFirst;2、避免使用class_name关键词