美文网首页
思考问题001

思考问题001

作者: wuyuan0127 | 来源:发表于2023-07-09 20:58 被阅读0次

    比如一个对象

    @Data

    public class User implements Serializable {

        @Id

        private String id; // id

        private String username; // 用户名

        private String password; // 密码

    private Integer age; //年级

    private List<String> hobby; //爱好

    private LocalDatetime createTime; //创建时间

    }

    原先是这样的 存在数据库:

    {

      "id": "test_9c43ed66f5f5",

      "username": "test_26207c9c0e26",

      "password": "test_1ca621129395",

      "age": 23,

      "hobby": ["climb","bascketball"]

    }

    后面我修改成:

    {

      "id": "test_9c43ed66f5f5",

      "username": "update112",

      "password": "pwdchange",

      "hobby":: ["climb","eat fish"],

      "createTime":"2023-07-06 12:23:01"

    }

    那么想得到这样的结果:

    {"propertyName":"id","changeType":"noChange",oldValue:"test_9c43ed66f5f5","newValue":"test_9c43ed66f5f5"}

    {"propertyName":"username","changeType":"change",oldValue:"test_26207c9c0e26","newValue":"update112"}

    {"propertyName":"password","changeType":"change",oldValue:"test_1ca621129395","newValue":"pwdchange"}

    {"propertyName":"age","changeType":"delete",oldValue:"23","newValue":null}

    {"propertyName":"hobby","changeType":"change",oldValue:"["climb","bascketball"]","newValue":["climb","eat fish"]}

    {"propertyName":"createTime","changeType":"add",oldValue:null","newValue":"2023-07-06 12:23:01"}

    改如何设计?

    使用 BeanWrapperImpl 反射实现。。。

    相关文章

      网友评论

          本文标题:思考问题001

          本文链接:https://www.haomeiwen.com/subject/orgsudtx.html