场景:业务表里有一个字段is_delete,Model自动生成后该字段是一个布尔类型: `is_delete` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否删除:1,是;0,否'

框架使用的是springboot + activeRecord

spring-boot-starter-parent使用低版本如2.1.3.RELEASE,使用dao.findFirst时候一切正常,返回的对象中is_delete是布尔型

下面问题来了,当spring-boot-starter-parent使用高版本如2.3.0.RELEASE的时候,问题出现了。返回的对象中is_delete是数字0,不是布尔型,导致类型转换报错。

尝试解决:

经过调试发现com.jfinal.plugin.activerecord.generator.MetaBuilder类中以下地方有差别if (typeStr == null) {

String colClassName = rsmd.getColumnClassName(i);

typeStr = typeMapping.getType(colClassName);

}

对于colClassName,低版本的springboot环境中获取到的是java.lang.Boolean,高版本是java.lang.Integer。

对于rsmd对象进行打印后,

低版本中是这样:com.mysql.cj.result.Field@53499d85[catalog=jtxxh,tableName=sys_department,originalTableName=sys_department,columnName=is_delete,originalColumnName=is_delete,mysqlType=1(FIELD_TYPE_BIT),sqlType=-7,flags= UNSIGNED, charsetIndex=63, charsetName=ISO-8859-1]

高版本中是这样:com.mysql.cj.result.Field@780ec4a5[dbName=jtxxh,tableName=sys_department,originalTableName=sys_department,columnName=is_delete,originalColumnName=is_delete,mysqlType=1(FIELD_TYPE_TINYINT UNSIGNED),sqlType=-6,flags= UNSIGNED, charsetIndex=63, charsetName=ISO-8859-1]

从上面的打印看,高版本环境下对于mysqlType的判断更加准确,是什么导致的呢?嘿嘿,经过仔细分析和观察,mysql驱动版本不一样。高版本的springboot自带的是8.0.20,而低版本自带的是8.0.15。

之前对于mysql驱动的引入是这么写的:

mysql

mysql-connector-java

他的版本号由springboot的版本号决定。所以如果要解决上述问题,就是让is_delete字段保持之前的布尔型,只要显式的指定mysql版本号即可。

springboot获取active_springboot 2.3.0+activeRecord获取对象报类型转换错误相关推荐

  1. android 动态获取权限有哪些,Android 6.0+ 动态获取权限

    Android 6.0+ 动态获取权限 这里有一个现成的库,可以直接拿来用.方便简单 1.向app下的gradle添加依赖: dependencies{ // android 6.0+ 动态获取权限 ...

  2. pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)

    pandas使用groupby.first函数.groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异) 目录

  3. iOS6.0下获取通讯录用户列表

    2019独角兽企业重金招聘Python工程师标准>>> 自iOS6.0后获取通讯录列表需要询问用户,经过用户同意后才可以获取通讯录用户列表.而且ABAddressBookRef的初始 ...

  4. Asp.net 2.0 中获取控件输出的Html代码 (转)

    将Asp.net 控件的呈现html获取,在不少场合会用到,比如生成静态页时 以下代码选自 Asp.net 2.0 高级编程 转自:Asp.net 2.0 中获取控件输出的Html代码 public  ...

  5. android动态mac地址,Android 版本兼容 — Android 6.0 和 7.0后获取Mac地址

    Android 6.0 和 7.0后获取Mac地址 随着Android的版本迭代,获取设备的Mac地址也发生了改变.这里找到了最新的适配方案(适配当前的最新版本Android 9.0),并且记录了整个 ...

  6. 怎么免费获取帆软9.0激活码,帆软8.0激活码,如何激活

    FineReport作为领先的企业级Web报表一直致力于解决中国式报表应用难题,它有两个版本:个人免费版,企业收费版.帆软公司对免费版用户非常友好,下面就来介绍一下怎么免费获取帆软9.0激活码,帆软8 ...

  7. 关于Android 8.0/9.0 之后获取wifi名称为空的解决方法

    今天连接硬件设备的时候,需要用到wifi名和密码来进行绑定配对.在获取wifi名的时候,意外发现为空.于是就开始找寻解决方案. 后来找到这么一篇文章: Android获取WIFI 的ssid 方法适配 ...

  8. 【django】用户登录模块实现步骤(二)之QQ登录工具AgentLogin和通过OAuth2.0认证获取openid【33】

    一.QQ登录工具AgentLogin 1.AgentLogin介绍 ⽬前只⽀持 腾讯QQ,微信,微博的第三⽅登录 该⼯具封装了QQ登录时对接QQ互联接⼝的请求操作.可⽤于快速实现QQ登录功能. 2.A ...

  9. 如何在24小时内0成本获取到25000+精准粉丝的?

    今天看到一篇干货分享文章:<如何在24小时内0成本获取到25000+精准粉丝的?>,阿泽特意分享出来,希望对大家有帮助.好了,上干货: 前言:最近做了一个公众号,试水推了一个分享链接得资源 ...

  10. Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息

    转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...

最新文章

  1. the folder is already a source folder.
  2. element-ui upload组件上传图片时限制图片宽高
  3. 转android项目开发 工作日志 2011.10.8--onConfigurationChanged屏幕改变事件
  4. SpringBoot - 优雅的实现【业务校验】高级进阶
  5. Dockerfile: no such file or directory
  6. SAP Cloud for Customer Cloud Application Studio的一些使用技巧(持续更新)
  7. 体育赛事中的概率计算问题
  8. React ant design UI 禁用 启用 switch 开关 加弹窗确认提示 代码片段
  9. linux puppy 安装软件,小芭比linux下载
  10. 转 - DataGuard中如何配置LOG_ARCHIVE_DEST_n参数
  11. 选择阿里云服务器的理由
  12. 使用多种AI算法玩方格迷宫——基于Value的RL算法 【开源】
  13. ubuntu18.04 安装java
  14. 笔记本电脑切换不到投影仪 问题 解决方法
  15. 100G QSFP28 CLR4单模光模块的介绍及对比
  16. SQL Server 2005 高速下载
  17. Java web p41
  18. 为PANDA制作的DWI按扫描次数分类的toolkit
  19. MIMIC IV数据库安装(二)
  20. excel数据可视化销售报表案例--根据某平台提供的明细数据及需求制作的一份销售报表案例

热门文章

  1. (转)黄金交易革命即将到来?区块链技术让你像刷卡一样“刷黄金”
  2. Julia :迎接0.6的到来
  3. Julia: 关于Github上的其它库
  4. 人工智能︱腾讯如何利用英特尔至强处理器在游戏内创建购买推荐系统?
  5. 【手写数字识别】基于matlab GUI BP神经网络手写数字识别系统【含Matlab源码 1639期】
  6. 【数字信号】基于matlab GUI虚拟信号发生器(各种波形)【含Matlab源码 271期】
  7. 【TWVRP】基于matlab蚁群算法求解带时间窗的多中心车辆路径规划问题【含Matlab源码 112期】
  8. java适配器模式_java设计模式之适配器模式
  9. 软件蓝图设计_智能企业的设计蓝图
  10. 动态规划: 数字三角形