问题背景

在项目中使用jpa和jdbcTemplate时,发现当对Tinyint类型的数据进行查询时,会被当作boolean类型返回。
而在项目中,我们使用了大量的Tinyint来做枚举值,被当作布尔类型返回后,造成了程序的异常。

status TINYINT(1)  NOT NULL DEFAULT 0;

分析

在mysql的官网 numeric-type-overview 这篇文档里面写到

BOOL, BOOLEAN

These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true

也就是说,在mysql中对 TINYINT(1)BOOLEAN 的处理是一样的。

解决

查了不少文档,都是对 jpa 或者 jdbcTemplate的查询方法进行扩展,在返回的数据进行Mapper匹配时,判断如果是TINYINT类型,就作特殊处理。
虽然这样能解决问题,但像这样普遍的问题,我相信mysql肯定有过考虑,然后在mysql的官方文档里面发现了这个配置

The data type returned for TINYINT(1) columns when tinyInt1isBit=true (the default) can be switched between Types.BOOLEAN and Types.BIT using the new configuration property transformedBitIsBoolean

也就是说,当你对mysql Connector设置了tinyInt1isBit=true后,它会将TINYINT(1)当作BIT也就是
Types.BOOLEAN来处理。而且这个设置是默认开启的。那是不是设置为false后反过来呢?

于是在jdbc url后面添加了?tinyInt1isBit=true,问题解决

解决jdbcTemplate和jpa查询TINYINT(1)返回BOOLEAN的问题相关推荐

  1. JPA查询单个字段和多个字段返回类型总结

    在使用springboot中,需要使用JPQL和SQL去查询记录. 获取一整条记录,返回的类型就是对应的实体类或者实体类的集合. 当不是全部字段时,返回类型就不能是实体类了. 以下是用JPQL和SQL ...

  2. mysql忽略大小写jpa解决_春数据JPA查询生成忽略大小写,以避免列数据

    我使用的是春天的数据JPA获取使用ignoreCase属性数据为大写:春数据JPA查询生成忽略大小写,以避免列数据 Employee类: import javax.persistence.Entity ...

  3. jpa 查询 列表_终极JPA查询和技巧列表–第2部分

    jpa 查询 列表 这一部分是该系列文章的第一部分 . JPA:NamedQuery,使用日期查询,有关getSingleResult方法的警告 为了避免重复查询代码,提高性能并简化维护查询,我们可以 ...

  4. jpa 查询集合_避免懒惰的JPA集合

    jpa 查询集合 Hibernate(实际上是JPA)具有集合映射:@ OneToMany,@ ManyToMany,@ ElementCollection. 默认情况下,所有这些都是惰性的. 这意味 ...

  5. 终极JPA查询和技巧列表–第2部分

    这一部分是该系列文章的第一部分 . JPA:NamedQuery,使用日期查询,有关getSingleResult方法的警告 为了避免重复查询代码,提高性能并简化维护查询,我们可以使用NamedQue ...

  6. Spring Data JPA 查询方法的命名语法与参数

    3 Spring Data JPA 查询方法的命名语法与参数 在⼯作中,你是否经常为⽅法名的语义.命名规范⽽发愁?是否要为不同的查询条件写各种的 SQL 语句?是否为同⼀个实体的查询,写⼀个超级通⽤的 ...

  7. spring data jpa 查询自定义字段,转换为自定义实体

    目标:查询数据库中的字段,然后转换成 JSON 格式的数据,返回前台. 环境:idea 2016.3.4, jdk 1.8, mysql 5.6, spring-boot 1.5.2  背景:首先建立 ...

  8. MySqlClient访问tinyint字段返回布尔值

    MySqlClient访问tinyint字段返回布尔值 原文 MySqlClient访问tinyint字段返回布尔值 症状: 使用MySqlClient访问tinyint       unsign 字 ...

  9. jpa 查询 列表_终极JPA查询和技巧列表–第1部分

    jpa 查询 列表 我们可以在Internet上找到一些JPA"如何做",在本博客的此处,教您如何使用JPA执行多项任务. 通常,我看到有人问有关使用JPA进行查询的问题. 通常, ...

最新文章

  1. LeetCode简单题之按奇偶排序数组
  2. webservice发送xml报文_海关总署公告2020年第120号(关于发布进出境公路运输工具货运舱单电子传输报文格式V1.1的公告)...
  3. rtems的GNU(GCC)编译环境配置
  4. XML解析技术,DOM和SAX以及STAX的区别
  5. 华清远见java考试题_Java面试题,你能答对几个?
  6. 基于八叉树快速分类的Shear-Warp交互式体绘制算法
  7. java中if判断季节_Java判断用户输入月份的季节
  8. Linux笔记-Centos7编译安装GmSSL
  9. 回家了,写博文继续!
  10. java如何编译运行?
  11. VB中Array函数
  12. 文献阅读(40)ICLR2021-Combining Label Propagation and Simple Models Out-performs Graph Neural Networks
  13. 【## 1、浏览器及内核-】
  14. DFS:拯救少林神棍(Sticks)[四轮剪枝操作]
  15. 新书《完美统计图:Word/PPT/Excel数据可视化宝典》,包邮送
  16. 算法开启队列转栈武魂
  17. 华为AX3 PRO路由器与光猫桥接
  18. 异步电动机转子磁动势——转子堵转时
  19. 关于禅道二次开发的分享
  20. spark+mongodb大数据框架搭建

热门文章

  1. 服务器x3850硬盘启动设置,IBM服务器x3850硬件安装手册.docx
  2. 高压开关综合测试仪现场试验常见问题解答
  3. 浪潮与SAP签约,互相相中对方的什么?
  4. 百度地图Marker隐藏/显示
  5. 我们的项目管理心得--二,心路历程
  6. 现在培训IT技术出来还能就业吗?
  7. 谷粒学苑-项目搭建、讲师前后端、课程分类前后端、OSS、EasyExcel
  8. Java从入门到放弃09---多态/向上转型/向下转型/多态内存图/抽象类/关键字abstract不能和哪些关键字共存/接口/类与类,类与接口,接口与接口的关系/抽象类与接口的区别
  9. Optimizilla中文在线无损压缩JPG、PNG图片,不降低画质有效减少图片文件大小
  10. CSS常用属性之文本属性(四)