问题发现
今天发布presto对应的查询接口服务给第三方服务,发现他们批量查询时会出现如下错误
Cause: java.sql.SQLException: Error executing query
; uncategorized SQLException; SQL state [null]; error code [0]; Error executing query; nested exception is java.sql.SQLException: Error executing query
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at com.sun.proxy.$Proxy171.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:108)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:96)
问题原因
经排查,项目上使用的presto为
<!-- https://mvnrepository.com/artifact/com.facebook.presto/presto-jdbc -->
<dependency>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-jdbc</artifactId>
<version>0.203</version>
</dependency>
服务器上部署的presto集群为338版本
解决方案
根据服务器上的presto集群版本判断是与presto-jdbc版本不一致导致的
修改presto-jdbc为:
<!-- https://mvnrepository.com/artifact/io.prestosql/presto-jdbc -->
<dependency>
<groupId>io.prestosql</groupId>
<artifactId>presto-jdbc</artifactId>
<version>338</version>
</dependency>