当前使用版本(必填,否则不予处理)
3.4.3.4
该问题是如何引起的?(确定最新版也有问题再提!!!)
调用ChainWrappers#lambdaQueryChain() 做update 的时候,抛出java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException
重现步骤(如果有就写完整)
使用 lambdaUpdate#update 的方式update 报错,但是lambdaQuery 正常
报错信息
java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException
at com.baomidou.mybatisplus.extension.conditions.update.ChainUpdate.update(ChainUpdate.java:45) ~[mybatis-plus-extension-3.4.0.jar:3.4.0]
at com.jdp.linkhub.act2hive.jdbc.dal.ActInfoDao.updateTpNumByAct(ActInfoDao.java:68) ~[classes/:?]
at com.jdp.linkhub.act2hive.act2hdfs.source.mysql.KafkaMetaSource.lambda$read$1(KafkaMetaSource.java:98) ~[classes/:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_275]
at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1628) ~[?:1.8.0_275]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_275]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_275]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_275]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_275]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) ~[?:1.8.0_275]
at com.jdp.linkhub.act2hive.act2hdfs.source.mysql.KafkaMetaSource.read(KafkaMetaSource.java:107) ~[classes/:?]
at com.jdp.linkhub.act2hive.source.mysql.MySqlSourceFunction.run(MySqlSourceFunction.java:46) ~[classes/:?]
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:110) ~[flink-streaming-java_2.11-1.12.1.jar:1.12.1]
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:66) ~[flink-streaming-java_2.11-1.12.1.jar:1.12.1]
at org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:241) ~[flink-streaming-java_2.11-1.12.1.jar:1.12.1]
Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataAccessException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[?:1.8.0_275]
at java.lang.ClassLoader.loadClass(ClassLoader.java:419) ~[?:1.8.0_275]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) ~[?:1.8.0_275]
at java.lang.ClassLoader.loadClass(ClassLoader.java:352) ~[?:1.8.0_275]
... 15 more
Comment From: chachae
@miemieYaho
Comment From: chachae
看了下是SqlHelper 引了Spring 的包导致的,v3.4.0之前的版本这块的代码不需要用到TransactionSynchronizationManager,通用工具类跟Spring 强绑定这块是否不太合理呢~ @qmdx @miemieYaho