jpa访问第三方数据库报表不存在问题(表其实存在)

问题描述:

我们项目在开发过程中,使用到了jpa,查询非本地库,使用原生sql查询第三方数据库,

例如:

@DS("配置的库名")
@Query(value = " select 字段1,字段2 from table",nativeQuery = true)
List<Map<String,接受字段对象>> getXXXList();

程序调用过程中,一直报表不存在,plsql中是能够看到相关表的,一直以为写的jpa语法问题,最终发现是因为事务的问题导致的,

解决方法:

我们在service实现层,将事务注解去除,

原因:

我们使用多数据的方式是,spring 自带的多数据源配置

spring:

        datasource:

                primary:baseA #默认数据库

                strict: false #是否严格匹配数据库

                datasource:

                        baseA:

                                url:

                                username:

                                等

                        baseB:

                                url:

                                username:

                                等

因为使用transactional事务注解,

默认主数据源了,用了DS("baseB"),也查不到第三方数据库,

以往,我们配置多数据源时,分别写两个config配置类class,项目启动加载两个config文件,加载两个数据库,分别在不同的文件夹下进行数据库交互,没有这个问题,这个比较特殊,记录一下

猜你喜欢

转载自blog.csdn.net/qq_44691484/article/details/128557607