mongodbTemplate怎么优雅的实现修改操作
Document document = Document.parse(JSON.toJSONString(content));
document.remove("contentId");
document.remove("createTime");
Update update = new Update();
for (Map.Entry<String, Object> entry : document.entrySet()) {
update.set(entry.getKey(), entry.getValue());
}
不知道大家有没有发现,这样更新字段,其实你不需要知道需要修改哪几个字段,就可以实现使用最少的代码实现想要实现的效果。
但是大家需要注意的是,如果某个字段有默认值,但是实际业务并不会修改它,这时候就需要手动移除调该属性,是不是觉得很麻烦。所以只能继续优化这段代码。
如果我不想在代码里这样写,请问有办法吗?如果想要实现这个功能实际上也是可以的,我们需要在content实体类
的contentId和createTime两个属性上添加@JsonField(serialize = false)。下面给大家解释下这个注解的作用。这个注解是fastjson提供的,主要是告诉实体对象生成json对象时,可以
忽视这两个字段。所以代码进一步优化后的效果如下
Document document = Document.parse(JSON.toJSONString(content));
Update update = new Update();
for (Map.Entry<String, Object> entry : document.entrySet()) {
update.set(entry.getKey(), entry.getValue());
}
如果大家在看到这个的时候,有更好的优化方案欢迎留言