Open zyd100 opened 1 year ago
现在其实在DIFF的对象上是支持别名的,你可以看下文档的实体类Diff哪里,比如@LogRecordDiffField加alias
public class TestUser {
@LogRecordDiffField(alias = "用户工号")
private Integer id;
private String name;
}
效果就是:
"msg":"【用户工号】从【1】变成了【2】 【name】从【张三】变成了【李四】"
不过现在DIFF类里如果嵌套了别的类(我看你例子里就是这种情况)还不能支持这样的别名,因为目前的DIFF实现不能拿到嵌套类的别名。
由于嵌套类现在是依赖转为JSON对比,所以读取别名较为困难,除非换一种DIFF实现,自己来遍历所有嵌套,这个我还在摸索比较好的实现。
临时解决方案就是使用的时候尽量避免DIFF的类里有嵌套类,也就是说直接DIFF更加具体的,只有一层字段的类。
diff函数内,我看作者大大在msg输出时是直接调用 old/newValue.toString()。请问能否支持通过注解别名优化一下输出。
例子:【列表A】从【[TestDiffJob(jobId=22, jobName=222, dutyList=[TestDiffDuty(dutyId=222, dutyName=222)])]】 改为 【列表A】从【[实体A(编号=22, 名字=222, 列表A=[实体B(编号=222, 名=222)])]】
原输出虽然开发人员能够明白,但对于业务人员的查看并不友好
以上效果虽然可以直接通过覆写toString实现,但不算是一个太好的方案,容易干扰用到toString的相关代码。