首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MyBatis版本升级导致OffsetDateTime入参解析异常问题复盘

升级完毕之后,执行所有现存的集成测试,发现有部分OffsetDateTime类型入参的查询方法出现异常,于是进行源码层面的DEBUG找到最终的问题并且解决。 ?...startCreateTime, @Param("endCreateTime") OffsetDateTime endCreateTime...MySQL驱动包解析OffsetDateTime类型的参数有版本兼容问题。 前面两种情况混合相互影响导致的,其实这里也可以理解为同一种情况,因为MyBatis归根到底是对MySQL驱动包进行了封装。...当时项目中使用的mysql-connector-java版本为8.0.18,并未升级为当前的最新版本8.0.21,所以当时也有怀疑是低版本MySQL驱动包没有兼容解析OffsetDateTime类型的参数...参数解析异常的根本原因 本文前面提到的解析OffsetDateTime类型异常,实际上执行查询的时候代码会步入OffsetDateTimeTypeHandler,这里对比一下3.4.5和3.5.5版本中

52731
您找到你想要的搜索结果了吗?
是的
没有找到

MyBatis版本升级导致OffsetDateTime入参解析异常问题复盘

升级完毕之后,执行所有现存的集成测试,发现有部分OffsetDateTime类型入参的查询方法出现异常,于是进行源码层面的DEBUG找到最终的问题并且解决。...startCreateTime, @Param("endCreateTime") OffsetDateTime endCreateTime...MySQL驱动包解析OffsetDateTime类型的参数有版本兼容问题。 前面两种情况混合相互影响导致的,其实这里也可以理解为同一种情况,因为MyBatis归根到底是对MySQL驱动包进行了封装。...当时项目中使用的mysql-connector-java版本为8.0.18,并未升级为当前的最新版本8.0.21,所以当时也有怀疑是低版本MySQL驱动包没有兼容解析OffsetDateTime类型的参数...参数解析异常的根本原因 本文前面提到的解析OffsetDateTime类型异常,实际上执行查询的时候代码会步入OffsetDateTimeTypeHandler,这里对比一下3.4.5和3.5.5版本中

1.6K21

解决 MyBatis-Plus + PostgreSQL 中的 org.postgresql.util.PSQLException 异常

Cause: org.postgresql.util.PSQLException: conversion to class java.time.OffsetDateTime from int4 not...具体来说,数据库中的’ id '列的数据类型是int4(整数),但在映射到Java实体类时,使用了java.time.OffsetDateTime(时间日期)类型,导致转换失败。...例如,在你的Java实体类中,将id字段的数据类型改为Long,而不是OffsetDateTime。这样,你就可以正确地映射数据库的id列数据到Java实体类。...这样,你可以在获取数据时,将数据库返回的int值转换为OffsetDateTime类型。这个方法需要编写一些代码,但可以让你在Java实体类中保持OffsetDateTime类型的数据。...假设我们有一个名为 User 的实体类,其中有一个字段名为 createTime,数据类型为 OffsetDateTime

89610

给ShardingSphere提了个PR,不知道是不是嫌弃我?

问题 问题挺简单的,就是在使用 mybatis 和 ShardingSphere 的时候,有人在 model 类使用了 OffsetDateTime 这个时间类型,发现会报错。...Caused by: java.lang.ClassCastException: class java.sql.Timestamp cannot be cast to class java.time.OffsetDateTime...(java.sql.Timestamp is in module java.sql of loader 'platform'; java.time.OffsetDateTime is in module...LocalDateTime.class.equals(type) || LocalDate.class.equals(type) || LocalTime.class.equals(type) || OffsetDateTime.class.equals...再去看了下 OffsetDateTimeTypeHandler的实现,其实就是自己就解决了,直接给返回OffsetDateTime ,根本不会走到 ShardingSphere 的逻辑里面去,这也就是他能解决这个问题的原因了

45520

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券