springboot2.0, 多数据源,连接mysql和postgresql的一个坑

作者的应用有多个数据源,两个pg和,一个mysql
如果应用第一个初始化的数据源是pg,那应用就会一直使用pg的dialect继续初始化之后的数据源
必须在mysql的数据源配置类中手动指定为mysql的dialect
网上大多数是在配置文件中指定
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
如果你的数据源都是同一类型,就不会有问题

private Map getVendorProperties() {
        Map ret = jpaProperties.getHibernateProperties(new HibernateSettings());
        ret.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
        return ret;
    }

    /**
     * 设置实体类所在位置
     */
    @Bean(name = "entityManagerFactoryJeecms")
    public LocalContainerEntityManagerFactoryBean entityManagerFactoryJeecms(EntityManagerFactoryBuilder builder) {
        return builder.dataSource(jeecmsDataSource).packages("com.zupu.core.jeecms.domain")
                .persistenceUnit("jeecmsPersistenceUnit").properties(getVendorProperties()).build();
    }

你可能感兴趣的:(springboot2.0, 多数据源,连接mysql和postgresql的一个坑)