当前使用版本(必填,否则不予处理)
3.4.0
该问题是如何引起的?(确定最新版也有问题再提!!!)
@Async("executor")异步执行的mapper报错,发现与行级租户设置有关。
重现步骤(如果有就写完整)
报错信息
2020-11-20 16:25:03 xtt-1 ERROR o.s.a.i.SimpleAsyncUncaughtExceptionHandler - Unexpected exception occurred invoking async method: public void com.xtt.qc.service.BaseServiceImpl.updateLatestData(com.xtt.qc.pojo.base.BaseLatestData) org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
Error updating database. Cause: java.lang.NullPointerException
The error may exist in file [E:\winn\project\hd-qc-backend\target\classes\mapper\BaseMapper.xml]
The error may involve com.xtt.qc.mapper.BaseMapper.updatePatientLatestData
The error occurred while executing an update
Cause: java.lang.NullPointerException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at com.sun.proxy.$Proxy77.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:65)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy106.updatePatientLatestData(Unknown Source)
at com.xtt.qc.service.BaseServiceImpl.lambda$updateLatestData$0(BaseServiceImpl.java:33)
at java.util.Optional.ifPresent(Optional.java:159)
at com.xtt.qc.service.BaseServiceImpl.updateLatestData(BaseServiceImpl.java:32)
at com.xtt.qc.service.BaseServiceImpl$$FastClassBySpringCGLIB$$feca7672.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Comment From: miemieYaho
你租户信息存线程里异步取不到怪我们?
Comment From: Wxdddd
不好意思 疏忽了