确认

  • [X] 我使用的版本是最新版, 并且使用插件确认过项目里无依赖版本冲突
  • [X] 我已经在 issue 中搜索过, 确认问题没有被提出过
  • [X] 我已经修改标题, 将标题中的 描述 替换为遇到的问题

当前程序版本

jdk17 & springboot 3.3.4 & mybatis-plus 3.5.9

问题描述

通过idea编辑器运行 执行 saveBatch 正常。但是打包成jar后 通过 java -jar 运行,执行到 saveBatch 或者 saveOrUpdateBatch 的方法后 报错。

详细堆栈日志

java.util.NoSuchElementException: null
        at java.base/java.util.ServiceLoader$2.next(ServiceLoader.java:1318)
        at java.base/java.util.ServiceLoader$2.next(ServiceLoader.java:1306)
        at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403)
        at com.baomidou.mybatisplus.extension.spi.CompatibleHelper.getCompatibleSet(CompatibleHelper.java:30)
        at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:186)
        at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:209)
        at com.baomidou.mybatisplus.extension.repository.AbstractRepository.executeBatch(AbstractRepository.java:107)
        at com.baomidou.mybatisplus.extension.repository.CrudRepository.saveBatch(CrudRepository.java:61)
        at com.baomidou.mybatisplus.extension.service.IService.saveBatch(IService.java:41)
        at com.shengqin.sports.modules.plan.service.TestResultService.lambda$calculateTestResult$8(TestResultService.java:205)
        at java.base/java.util.HashMap.forEach(HashMap.java:1421)
        at com.shengqin.sports.modules.plan.service.TestResultService.calculateTestResult(TestResultService.java:182)
        at com.shengqin.sports.modules.plan.service.TestResultService.importBatch(TestResultService.java:357)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:723)
        at com.shengqin.sports.modules.plan.service.TestResultService$$SpringCGLIB$$0.importBatch(<generated>)
        at com.shengqin.sports.modules.open.ApiController.lambda$uploadResult$11(ApiController.java:216)
        at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
        at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Comment From: ruizhou8888

我将环境版本降至 jdk17 & springboot 3.3.2 & mybatis-plus 3.5.8 变成正常

Comment From: nieqiurong

测试没发现有你说的问题, 你提供个复现工程把. MyBatis-Plus [错误报告]: 新版本打包运行 执行到 saveBatch 或者 saveOrUpdateBatch 报错

Comment From: nieqiurong

应该是分离打包那些问题吧?

Comment From: zxiuyi

确实有这个问题

Comment From: nieqiurong

有问题提供工程上来