• Spring Boot——jpaProperties.getHibernateProperties()的使用


    背景

    • 在使用SpringBoot配置多数据源时,找到了很多大牛的资料,结果在使用jpaProperties.getHibernateProperties()时一直报错。
    • 很多资料写法如下,可是我这里就行不通
      • @Primary
            @Bean(name = "entityManagerFactoryPrimary")
            public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary(EntityManagerFactoryBuilder builder) {
                return builder
                        .dataSource(primaryDataSource)// 设置数据源
                        .properties(jpaProperties.getProperties())// 设置jpa配置
                        .properties(getVendorProperties())// 设置hibernate配置
                        .packages("com.xxxx.xxxxxx.xxxxxx.xxxxx.entities.superviser") //设置实体类所在位置
                        .persistenceUnit("primaryPersistenceUnit")// 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源
                        .build();
            }
        
            private Map getVendorProperties() {
                return jpaProperties.getHibernateProperties(new HibernateSettings());
            }

    原因

    • 我使用的SpringBoot版本是2.2.1 RELEASE 版本,这个getHibernateProperties()方法已经被PASS掉了。

    解决办法

    • 曲线救国,使用如下代码即可
      • @Primary
            @Bean(name = "entityManagerFactoryPrimary")
            public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary(EntityManagerFactoryBuilder builder) {
                return builder
                        .dataSource(primaryDataSource)// 设置数据源
                        .properties(jpaProperties.getProperties())// 设置jpa配置
                        .properties(getVendorProperties())// 设置hibernate配置
                        .packages("com.canaan.superviser.objects.rpc.entities.superviser") //设置实体类所在位置
                        .persistenceUnit("primaryPersistenceUnit")// 设置持久化单元名,用于@PersistenceContext注解获取EntityManager时指定数据源
                        .build();
            }
        
        
            private Map getVendorProperties() {
                return hibernateProperties.determineHibernateProperties(jpaProperties.getProperties(), new HibernateSettings());
        
        //        return jpaProperties.getHibernateProperties(new HibernateSettings());
            }
  • 相关阅读:
    软件开发测试模式:迭代→全功能模式
    LUN挂载到Linux主机后,如何对磁盘进行分区
    MySQL性能优化方法四:SQL优化
    MySQL性能优化方法三:索引优化
    MySQL性能优化方法二:表结构优化
    MySQL性能优化方法一:缓存参数优化
    MySQL配置文件my.ini或my.cnf的位置
    javascript今生前世
    如何在sublime中使用sass
    全栈最后一公里
  • 原文地址:https://www.cnblogs.com/zuiyue_jing/p/12757555.html
Copyright © 2020-2023  润新知