springboot多数据源配置的一个坑 不支持“variant”数据类型

在配置SpringBoot连接postgresql和sqlserver两个数据库时,遇到一个错误:'variant'数据类型不受支持。原因是数据源的方言配置错误,主数据源的方言被错误地应用到了sqlserver数据源。解决方案是明确配置每个数据源的方言,并且注意在SpringBoot 2.0以上版本,数据源配置文件中的数据库URL应写为jdbc-url。此外,使用JPA实体类时,多数据源环境下必须指定@Table的name属性和@Column的name属性,以匹配数据库表名和字段名,否则会报'relation "xxx" does not exist'的错误。
摘要由CSDN通过智能技术生成

 

最近项目要连两个数据库,一个postgresql,一个sqlserver,网上配置两种数据源的方法一抓一大把,有的地方写的不太详细,也可能是版本问题,这个小坑坑了我小半天。

启动后一直报com.microsoft.sqlserver.jdbc.SQLServerException: 不支持“variant”数据类型。就很奇怪啊,第二个数据源没有启动成功,各种找原因,后来仔细看日志,我用sqlserver做辅数据源,居然方言也沿用了主数据源pg的,配置文件中没有设置具体每个的方言,那能不报错吗~

大家注意部分关键语句,jpaPropertis。另外还要注意springboot 2.0以上版本,多数据源配置文件中的数据库地址默认要写成jdbc-url 而不是url。改完方言之后果断成功了

    @Bean(name = "entityManagerFactoryDataBase2")
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryDataBase2(EntityManagerFactoryBuilder builder) {
        return builder
                // 设置数据源
                .dataSource(dataSource2)
                //设置实体类所在位置.扫描所有带有 @Entity 注解的类
                .properties(getVendorProperties(dataSource2))
                .packages("com.babababa.sqlserver.entity")
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值