针对BIGINT UNSIGNED类型字段,生成的Mapper文件jdbcType错误
sagexueqi opened this issue · comments
sage.xue commented
问题描述
在mysql数据库中,表中字段类型为bigint(20) unsigned
时,生成的Mapper文件jdbcType=BIGINT UNSIGNED
。导致应用加载Mapper配置失败,无法启动。
期望结果
针对类似的字段数据类型,需要根据java.sql.Types
转换为实际的jdbcType。
bigint(20) unsigned
在mapper中的jdbcType应该为BIGINT
问题原因
- 加载定制列数据时,通过
DbUtil.getTableColumns()
获取列JDBC TYPE
的过程中,直接根据rs.getString("TYPE_NAME")
获取到的Type名称作为JDBC TYPE,并覆盖mybatis-generator生成的列配置
修复方案
DbUtil.getTableColumns()
设置字段jdbc type
时,使用mybatis generator提供的JavaTypeResolverDefaultImpl
进行转换