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());
          }

       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM