小编ooz*_*mac的帖子

在 Spring Boot 中动态设置 hibernate.dialect 属性

我已经浏览了有关如何hibernate.dialect正确设置属性的可用示例和教程,但发现没有适合我的情况的方法。

教程最适合我,但它缺乏hibernate.dialect动态设置属性的能力,因为我有不同类型的数据库要连接:

  • 微软SQL
  • 甲骨文
  • 氢2
  • MySQL

由于方言不正确,我的 JPA(删除/更新)查询失败。

通过以下完美运行的 实现@Configuration,我如何能够hibernate.dialect在运行时为每个数据源动态设置?

先感谢您。

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
        basePackages = "com.example.multidb",
        entityManagerFactoryRef = "multiEntityManager",
        transactionManagerRef = "multiTransactionManager"
)
public class PersistenceConfiguration {

    private final String PACKAGE_SCAN = "com.example.multidb";    

    @Primary
    @Bean(name = "mainDataSource")
    @ConfigurationProperties("app.datasource.main")
    public DataSource mainDataSource() {
        return DataSourceBuilder.create().type(HikariDataSource.class).build();
    }    

    @Bean(name = "clientADataSource")
    @ConfigurationProperties("app.datasource.clienta")
    public DataSource clientADataSource() {
        return DataSourceBuilder.create().type(HikariDataSource.class).build();
    }

    @Bean(name = "clientBDataSource")
    @ConfigurationProperties("app.datasource.clientb")
    public DataSource clientBDataSource() {
        return DataSourceBuilder.create().type(HikariDataSource.class).build();
    }

    @Bean(name = "multiRoutingDataSource") …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-boot

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×1

java ×1

spring ×1

spring-boot ×1