实体: public class Company { ... @column(value="create_org_id") private Long createOrgId;
... }
数据库信息:
监听类:
然后修改数据库这条记录后,发现并没有进 update 方法,然后追踪代码,发现了问题如下:
当然,我知道,可能大家会说数据库的值不要为空,放个默认值,但是这个表是老的表,里面有很多种这样的字段,而且还有其他的表也要走 canal 监控,如果改表的话相当麻烦且有可能不受控制上线会影响线上环境。
我是准备把这些影响的字段搞成String 去接收,然后传递出去的时候再转化一下。这样搞起来比较麻烦,不知道大家有没有什么好的方案,或者能不能针对这种情况做下优化。
原提问者GitHub用户yeyinzhu321
已解决,通过覆盖同名包来解决的,覆盖的逻辑如下: 修改之前的逻辑是: static Object convertType(Class<?> type, String columnValue) { if (columnValue == null) {//只判断 null,没有判断空 return null; }
修改后: static Object convertType(Class<?> type, String columnValue) { if (StrUtil.isBlank(columnValue)) {//增加了判断空的逻辑,如果为空也返回 Null return null; }
原回答者GitHub用户yeyinzhu321
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。