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());
          }
      复制代码

       

posted @   话·醉月  阅读(4552)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示