jpa多数据源启动报错More than one table found in namespace...

在jpa多数据源配置后,启动时,突然报了这个莫名其妙的异常信息(过去很多天了,异常信息当时没有及时记录),大概意思是,在进行数据库链接时发现有多余一个的同名的表存在,但是我的数据库明明只有一个这个名称的表,于是就点了点其他数据库,发现是有同名表存在的,那么为什么项目启动会扫描多个数据库,而不是一个写好地址的数据库呢?

网上有说是mysql驱动的版本问题,我的项目中使用的是

		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>

8.0 版本在数据库连接驱动信息发生了改变,由原来的 com.mysql.jdbc.Driver 变成了 com.mysql.cj.jdbc.Driver,并且,原来在 6.x 版本驱动的时候就将参数 nullCatalogMeansCurrent 的默认值由 true 改为了 false。

nullCatalogMeansCurrent这个参数的意思是:是否默认返回 datasource 指定库的表。也就是如果为 true,那么就从我们指定的数据库中找表;如果为 false,那么就从所有库中找表。

解决办法:

初始化连接的时候,为 nullCatalogMeansCurrent 参数指定为 true

spring.datasource.tradition.url=jdbc:mysql://localhost:62785/traditional?useSSL=false&useUnicode=true&autoReconnect=true&rewriteBatchedStatements=TRUE&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值