仅比较不为空

时间:2017-06-21 12:24:57

标签: java spring spring-boot

我正在开发一个应用程序spring-boot,我想与用户对象进行比较

public class User {

    private String name;
    private String firstName;
    private String codeEmpl;
    private String codeCompany;

    // Getters & setters
}

当我更新用户时,我从前端只获得了修改后的字段,然后我必须将这些字段与数据库中保存的字段进行比较。复制我收到的用户的已保存信息。我的问题是如何只比较从前端收到的动力场?以及如何只复制收到的对象上保存的信息?

关于比较: 我重写了equals但是equals逐个比较所有的字段。

关于复制: 我用了

BeanUtils.copyProperties(orig, dest); 

但是这会复制所有字段

你有什么想法吗?

祝你好运

1 个答案:

答案 0 :(得分:0)

除非您想要实现复杂的解决方案,否则我建议您将包含所有字段值的bean从后端发送到前端,作为编辑过程的第一步。然后,在编辑之后,使用修改后的值和未修改的值将bean从前端发送回后端。您可以使用一个标志字段来指示是否发生了任何修改。

一旦你拥有了包含后端所有值的bean,你就可以坚持使用数据库或你使用的任何持久性基础结构。

实际上,这与Angular.js或Backbone.js等框架在与REST API交互时的工作方式相同。