2020-03-26 12:52

@久伴轻尘 是的现在我的方案也是这样,只记录修改了哪些数据

2020-03-25 10:38

@JFinal 谢谢您的讲解,感觉如果直接添加表字段对服务整体影响很大,我还有个疑惑:调用_setAttrs方法时,set方法内部有一个_getModifyFlag().add(attr)方法,如果改用put方法,我看实现是sattrs.putAll方法,没有调用_getModifyFlag()方法,然后在model的update方法中,会判断_getModifyFlag()是否为空,为空则不做处理,所以我想问下put方法会影响update方法使用么,问的比较细,感谢解答

2020-03-24 20:37

@JFinal 我们这边执行生产脚本和发布生产服务是两部操作,如果添加表字段就要发布服务就影响有点大了,有没有什么方法_setAttrs可以不抛异常,如果setAttrs统一改成put又影响太大了,服务功能都要做回归测试。因为之前用过mybatis ,更改数据库添加字段时,服务都是正常不会有影响的,只有更改表字段名或者删除表字段才有影响

2020-03-24 20:26

@JFinal 不是动态改变数据表结构,是版本上线前要执行生产脚本,添加表字段,但是服务是不能发布的,这时候添加表字段就会导致使用_setAttrs方法报错,_setAttrs使用场景是数据库查询的Record把属性和值赋值给新的一个空对象,然后操作新的对象就像set属性操作,类似于对象拷贝

2020-03-24 20:15

JFinal 的model 对象 set方法是否可以没有找到对应的列不报异常,只提示日志警告,put一个空值,这样对整体影响就会小很多,只是数据显示不了

2020-03-24 19:51

@久伴轻尘 谢谢分享 那记录sql操作记录么,有没有记录过操作前的日志,然后分析更新了哪些数据这种场景

2020-03-24 16:50

@zzutligang 谢谢大佬,这个方法我觉得不错,正在尝试

2020-03-23 14:57

@JFinal 拦截数据库操作要拦截哪个对象,有没有例子方便参照下,增删改的操作日志都能拦截么