关于mybatis,insert的时候新增字段无法插入到数据库

前提:

需求要新增的字段都是可以为空的,insert 语句,insert的实体类的 get set方法都无误,打印的入参日志,debug的 insert sql语句都没有报错,但是查询数据库,新增的字段都是空的

原因分析:因为是大数据应用,同一个应用对接了多套数据源(mysql,pg,oracle,hive),一开始分析是因为改动的代码 使用了 lombok 导致的 或者是 线上的数据源和本地不一致导致的,或者 镜像包没有生效导致的,实则不然

后续通过设置 新增的字段非空约束,再次执行 新增动作,通过日志发现 报错,报错的原因是执行的 update  sql中设置 新增的字段为空,违反了 非空约束。

所以

1、作为新人到一个二次开发的项目的时候,尽可能的熟悉代码的上下文关于同一个表的数据变化,排查问题的时候,也要关注 是否 同一个表在create 了之后,还发生了其它update等操作,不能只关心是否  指定的某个insert操作是否报错,看不到日志就无从下手了;

2、代码尽可能的保证复用以及代码规范 和 注释,不然后续维护的同学真的很难一下发下问题

3、没有报错日志的时候,要反证法,比如新增的字段是可以为空的,那就设置非空约束,逐步排查问题原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值