数据库中存储的数据类型是tinyint(1)
state | tinyint(1) | 状态0-未完成;1-待提交;2-待支付;3支付失败; | 不为空 |
tinyint(1)存储的时候会存储下面长度的数字
但是在生成逆向工程的时候会生成为boolean类型
做了下面的修改
<result column="state" property="state" jdbcType="TINYINT" />
将生成的实体类,返回类型修改为int类型
但是这个时候出问题了,插入sql的时候自动将state存储为0
哪怕我存储的时候是2,到数据库中也变成了0
我这边找了下日志发现,实际插入调用mapper.insert的时候
自动跳过了,我设置的state字段,inset自动剔除了这个字段,所以我封装对象,插入的时候相当于插入了0
面对bug的我不由陷入了沉思.
第一次排查
state是后续添加的字段,我没有在新的参数上面加注解与数据库映射
一脸的黑人问号,
@Column(name = "state")
添加完注解,继续debug,依旧出错
第二次排查
最后发现是DAO 与生成的实体类类型不一致,所以赋值失败,最后问题解决