New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
updateBatchById批量更新报空指针异常 #2542
Comments
你这个我用3.3.2版本 也没复现 |
有复现demo? |
大概定位到问题,并不是数量的问题。使用mysql数据库,表中有一个字段类型为date,对应entity的类型为LocalDate,如果该字段保存值,则报错,不保存的话updateBatchById不会保存,只有一条数据的时候也是如此, |
那就是驱动问题,不支持jdbc4,mybatis底层全面升级为jdbc4了 |
那我现在要怎么解决呢? |
问题是,我单独使用updateById不会报错,只有在使用updateBatchById才报错,这也是因为驱动问题吗? |
本地也没复现,你把你的核心问题代码 发出来。 数据库是mysql吧, 字段date 属性是localdate 对吧 |
|
驱动版本? |
springboot项目,springboot版本:2.3.0,mysql版本:8.0.20 |
pom里和mybatis有关的都有啥? |
|
去掉,只保留mp的 |
去掉了,还是报错 |
那你整个复现demo吧 |
我用这个demo可以成功复现,复现的代码在测试类中,使用的数据库是mysql5.7.30 |
要不链我的测试库试试?我数据库就报错啊 |
data-source-properties:
cachePrepStmts: true
prepStmtCacheSize: 250
prepStmtCacheSqlLimit: 2048
useServerPrepStmts: true
useLocalSessionState: true
rewriteBatchedStatements: true
cacheResultSetMetadata: true
cacheServerConfiguration: true
elideSetAutoCommits: true
maintainTimeStats: false 你这一坨配置的问题.搞不懂啥意思就别乱配,over |
你有没有跑data.sql里面先插入一条数据。。。。 |
这是hikari的推荐配置啊我的哥,你跑的时候数据库有数据吗? |
看图片,里面有debug的sql |
要不连我的数据库试试?为啥我连自己的就报错呢??? |
试了下,真是配置的问题。。。按照hikari配的。。。我再研究研究,谢谢了 |
这很尴尬... |
当前使用版本(必填,否则不予处理)
3.3.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
使用updateBatchById,集合为2197条数据,报错。
将2197条数据遍历使用updateById,则正常。
将日志调整为debug级,使用updateBatchById查看生成的sql,将sql直接在数据库运行也正常。
重现步骤(如果有就写完整)
报错信息
Cause: java.sql.BatchUpdateException: java.lang.NullPointerException
The text was updated successfully, but these errors were encountered: