确认
当前程序版本
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
测试没发现有你说的问题, 你提供个复现工程把.
Comment From: nieqiurong
应该是分离打包那些问题吧?
Comment From: zxiuyi
确实有这个问题
Comment From: nieqiurong
有问题提供工程上来