思考问题001

2023-07-09  本文已影响0人  wuyuan0127

比如一个对象

@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 反射实现。。。

上一篇下一篇

猜你喜欢

热点阅读