欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

记一次更新Mysql表记录时,PreparedStatement.setTimestamp抛出NullPointerException的问题

程序员文章站 2022-03-27 12:40:28
今天同事在做mysql和seata的整合测试,出现的一个问题是更新了hibernate的实体,在保存时方法PreparedStatement.setTimestamp竟然抛出了空指针异常?!!然后该问题在未集成seata时是不存在的。经过排查,定位到问题是PreparedStatement.setTimestamp方法中的this.parameterMetaData.metadata为null,遂不解。再Google发现mysql驱动版本5.1.47存在bug,导致上述问题的产生。遂将项目中的my...

今天同事在做mysql和seata的整合测试,出现的一个问题是更新了hibernate的实体,在保存时方法PreparedStatement.setTimestamp竟然抛出了空指针异常?!!然后该问题在未集成seata时是不存在的。

经过排查,定位到问题是PreparedStatement.setTimestamp方法中的this.parameterMetaData.metadata为null,遂不解。
再Google发现mysql驱动版本5.1.47存在bug,导致上述问题的产生。

遂将项目中的mysql驱动依赖版本降级成seata依赖的mysql-connector-java-5.1.35版本,问题解决!遂更不解,为何引入seata之前,一直使用mysql-5.1.47都正常?!!

Mysql官方说明:PreparedStatement.setTimestamp NullPointerException

问题堆栈和异常代码贴出,提供给有缘人参考:

记一次更新Mysql表记录时,PreparedStatement.setTimestamp抛出NullPointerException的问题

记一次更新Mysql表记录时,PreparedStatement.setTimestamp抛出NullPointerException的问题

本文地址:https://blog.csdn.net/shuaidao_wupengyou/article/details/107393652