【发布时间】:2016-01-09 10:01:46
【问题描述】:
假设我有非常简单的User 类:
@JsonIgnoreProperties({"password", "created", "lastModified"})
public class User {
public String id;
public String name;
public String password
public Long created;
public Long lastModified;
}
当我们将 User 实体序列化为 JSON 字符串时,我们会过滤掉 password、created 和 lastModified。然后前端的用户会更新用户名并将用户放回我们的Restful服务。
我的伪控制器方法处理PUT 请求:
@Path("/user/{id}")
@POST
@Consumes(MediaType.APPLICATION_JSON)
public void saveUpdate(@PathParam("id")String id, User user) {
userService.save(user);
}
在上述方法中,我希望Jackson将前端发送的JSON字符串反序列化到POJOuser实例,然后调用我们的服务保存实例。
到目前为止,一切看起来都很酷。然而,当我们将user POJO 传递给userService 以保存它时,引发了担忧。请记住,当我们将user 序列化为 JSON 时,我们忽略了三个属性:password、created、lastModified,我们必须从数据库中获取这些缺失属性的值,然后与从发送的数据合并前端。
进行合并操作对于 coder 来说是一项非常简单但繁琐的任务。我想知道是否有任何好的做法可以轻松优雅地处理这个案例
【问题讨论】: