• tkmybatis逆向工程关于tinyint的玄学问题


    数据库中存储的数据类型是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 与生成的实体类类型不一致,所以赋值失败,最后问题解决

    个人建议吧:tinyint(1)尽量只存bool类型的数据,不然逆向工程的时候也是让人头大,还会出现各种问题,能够工具生成的代码,非要让人手动修改,当然会出现各种问题

  • 相关阅读:
    python3+request接口自动化框架
    类型转换函数
    操作符重载(三)
    操作符重载(二)
    操作符重载(一)
    时间获取函数
    文件和目录
    Linux五种IO模型
    类中的函数重载
    系统调用IO和标准IO
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852472.html
Copyright © 2020-2023  润新知