在MongoDB中用JPA更新数据,可以这样操作
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import java.util.HashMap;
import java.util.Map;
@AllArgsConstructor
@Data
@ToString
public class Entity {
@Id
private String id;
private Map<String, Object> map = new HashMap<String, Object>();
}
public class EntityController {
@Autowired
EntityRepository entityRep;
//参数e仅保存了id和更新数据
@PutMapping("/")
public ResponseEntity<Void> put(@RequestBody Entity e) {
Entity en = entityRep.findById(e.getId()).get();
e.getMap().forEach((k, v) -> {
en.getMap().put(k, v);
});
entityRep.save(en);
return ResponseEntity.ok().build();
}
}
但是这个过程是全取出来、部分更新、全存进去,太冗余,不优化。
如果在仓库中类似jpa操作,会报错com.mongodb.util.JSONParseException。