项目场景:
根据业务使用mybatisPlus,数据库使用postgresql,将原先旧的数据删除后,再计算后将新的数据添加
问题描述:
先删除数据后,从其他数据表中获取数据,进行逻辑计算后,使用mybatisPlus saveBatch方法插入。控制台打印插入sql,但是表中没数据,删除的数据也没删除掉,控制台也没有异常
this.saveBatch(list)
原因分析:
1、删除的数据没有成功删除,插入的数据也没有成功插入
2、数据库默认是自动事务提交
3、可能是有异常,导致事务回滚l。而且控制台打印的sql也不全
4、mybatisPlus 批量插入,只要有一条插入失败就会全部数据回滚
https://my.oschina.net/zjllovecode/blog/1818716
解决方案:
debug后,在批量插入的时候提示:java.lang.reflect.InvocationTargetException 但是这个异常没有抛出,看了下报错的插入数据。有个字段内容 为 255.20000000000002 超出数据库长度
修改好数据,就能插入成功了