1. 出现的问题
- 在写接口时,报错,如下:
Error updating database. Cause: java.sql.SQLException: Data truncated for column 'overbalance' at row 1 ### The error may involve
2. 报错原因
- overbalance实体类中类型与数据库对不上,但是我对其进行了更改,发现还是报错,于是换了个更新思路。解决方法:如下
3. 解决办法
- 先前采用的更新方法如下:
InteriorOrderEntity interiorOrderEntity = this.baseMapper.selectById(id); interiorOrderEntity.setOrderStatusId(130); Integer integer = this.baseMapper.updateById(interiorOrderEntity);
- 这种方法操作起来最简单,但是使用
Mybatis-plus
内置sql
更新时,会比较全量字段有没有改变,再进行更新。简言之,没更新的字段也会进行比较,这就造成了及时没有对overbalance
进行更新,也会进行比较,因为现在我们只要进行状态的改变就可以了就没必要对 overbalance 进行检查比较,即,更新数据表时只判断更新改变的字段,如下:InteriorOrderEntity interiorOrderEntity = this.baseMapper.selectById(id); InteriorOrderEntity entity = new InteriorOrderEntity(); entity.setOrderStatusId(90); entity.setId(interiorOrderEntity.getId()); this.baseMapper.updateById(entity);
成功解决。