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 19:51
@久伴轻尘 谢谢分享 那记录sql操作记录么,有没有记录过操作前的日志,然后分析更新了哪些数据这种场景
2020-03-23 14:57
@JFinal 拦截数据库操作要拦截哪个对象,有没有例子方便参照下,增删改的操作日志都能拦截么