Guest User

Untitled

a guest
Jan 15th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.45 KB | None | 0 0
  1. #PrimaryDB
  2. spring:
  3. datasource:
  4. type: com.zaxxer.hikari.HikariDataSource
  5. url: jdbc:h2:file:./target/h2db/db/********;DB_CLOSE_DELAY=-1
  6. username: **********
  7. password:
  8.  
  9. #PartnerDB
  10. partner:
  11. datasource:
  12. type: com.zaxxer.hikari.HikariDataSource
  13. url: jdbc:mysql://localhost:******/partner
  14. username: root
  15. password:
  16. driver-class-name: org.mysql.jdbc.Driver
  17.  
  18. package com.*******.config;
  19. import com.sun.corba.se.spi.orbutil.fsm.Input;
  20. import org.springframework.beans.factory.annotation.Qualifier;
  21. import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
  22. import org.springframework.boot.context.properties.ConfigurationProperties;
  23. import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
  24. import org.springframework.context.annotation.Bean;
  25. import org.springframework.context.annotation.Configuration;
  26. import org.springframework.context.annotation.Primary;
  27. import org.springframework.orm.jpa.JpaTransactionManager;
  28. import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
  29. import org.springframework.transaction.annotation.EnableTransactionManagement;
  30.  
  31. import javax.persistence.EntityManagerFactory;
  32. import javax.sql.DataSource;
  33.  
  34. @Configuration
  35. @EnableTransactionManagement
  36. public class PrimaryDbConfig {
  37. @Bean
  38. @Primary
  39. @ConfigurationProperties("spring.datasource")
  40. public DataSourceProperties defaultDataSourceProperties() {
  41. return new DataSourceProperties();
  42. }
  43.  
  44. @Bean
  45. @Primary
  46. @ConfigurationProperties("spring.datasource")
  47. public DataSource defaultDataSource() {
  48. return defaultDataSourceProperties().initializeDataSourceBuilder().build();
  49. }
  50.  
  51. @Bean(name = "entityManagerFactory")
  52. @Primary
  53. public LocalContainerEntityManagerFactoryBean defaultEntityManagerFactory(
  54. EntityManagerFactoryBuilder builder) {
  55. return builder
  56. .dataSource(defaultDataSource())
  57. .packages(Input.class)
  58. .persistenceUnit("default")
  59. .build();
  60. }
  61.  
  62. @Bean(name = "transactionManager")
  63. @Primary
  64. public JpaTransactionManager db2TransactionManager(@Qualifier("entityManagerFactory") final EntityManagerFactory emf) {
  65. JpaTransactionManager transactionManager = new JpaTransactionManager();
  66. transactionManager.setEntityManagerFactory(emf);
  67. return transactionManager;
  68. }
  69. }
  70.  
  71. import com.*****.domain.******;
  72. import org.springframework.beans.factory.annotation.Qualifier;
  73. import org.springframework.boot.autoconfigure.domain.EntityScan;
  74. import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
  75. import org.springframework.boot.context.properties.ConfigurationProperties;
  76. import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
  77. import org.springframework.context.annotation.Bean;
  78. import org.springframework.context.annotation.Configuration;
  79. import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  80. import org.springframework.orm.jpa.JpaTransactionManager;
  81. import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
  82. import org.springframework.transaction.annotation.EnableTransactionManagement;
  83.  
  84. import javax.persistence.EntityManagerFactory;
  85. import javax.sql.DataSource;
  86. import java.util.Properties;
  87.  
  88. @Configuration
  89. @EnableTransactionManagement
  90. @EntityScan(basePackages = "com.*********.domain")
  91. @EnableJpaRepositories(transactionManagerRef = "partnerTransactionManager", entityManagerFactoryRef = "partnerEntityManagerFactory", basePackages = "com.carrental.repository")
  92. public class PartnerDbConfig {
  93.  
  94. @Bean
  95. @ConfigurationProperties("partner.datasource")
  96. public DataSourceProperties partnerDataSourceProperties() {
  97. return new DataSourceProperties();
  98. }
  99.  
  100. @Bean
  101. @ConfigurationProperties("partner.datasource")
  102. public DataSource partnerDataSource() {
  103. return partnerDataSourceProperties().initializeDataSourceBuilder().build();
  104. }
  105.  
  106. @Bean(name = "partnerEntityManagerFactory")
  107. public LocalContainerEntityManagerFactoryBean partnerEntityManagerFactory(
  108. EntityManagerFactoryBuilder builder) {
  109. Properties properties = new Properties();
  110. properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
  111.  
  112. LocalContainerEntityManagerFactoryBean emf = builder
  113. .dataSource(partnerDataSource())
  114. .packages(*****.class)
  115. .persistenceUnit("******")
  116. .build();
  117. emf.setJpaProperties(properties);
  118. return emf;
  119. }
  120.  
  121. @Bean(name = "partnerTransactionManager")
  122. public JpaTransactionManager db2TransactionManager(@Qualifier("partnerEntityManagerFactory") final EntityManagerFactory emf) {
  123. JpaTransactionManager transactionManager = new JpaTransactionManager();
  124. transactionManager.setEntityManagerFactory(emf);
  125. return transactionManager;
  126. }
  127. }
  128.  
  129. package com.******.config;
  130.  
  131. import org.springframework.boot.SpringApplication;
  132.  
  133. import org.springframework.boot.autoconfigure.SpringBootApplication;
  134. import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
  135. import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
  136. import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
  137. import org.springframework.transaction.annotation.EnableTransactionManagement;
  138.  
  139. @SpringBootApplication(
  140. scanBasePackages = {"com.********"},
  141. exclude = { DataSourceAutoConfiguration.class,
  142. HibernateJpaAutoConfiguration.class,
  143. DataSourceTransactionManagerAutoConfiguration.class})
  144. @EnableTransactionManagement
  145.  
  146. public class SpringbootMultipleDatasourcesApplication {
  147.  
  148. public static void main(String[] args) {
  149. SpringApplication.run(SpringbootMultipleDatasourcesApplication.class, args);
  150. }
  151. }
  152.  
  153. org.springframework.beans.factory.BeanCreationException: Error creating bean with name '*****EntityManagerFactory' defined in class path resource [com/******/config/PartnerDbConfig.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: *******] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given; please either disable second level cache or set correct region factory using the hibernate.cache.region.factory_class setting and make sure the second level cache provider (hibernate-infinispan, e.g.) is available on the classpath.
  154.  
  155. Caused by: javax.persistence.PersistenceException: [PersistenceUnit: *******] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given; please either disable second level cache or set correct region factory using the hibernate.cache.region.factory_class setting and make sure the second level cache provider (hibernate-infinispan, e.g.) is available on the classpath.
  156.  
  157. Caused by: org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given; please either disable second level cache or set correct region factory using the hibernate.cache.region.factory_class setting and make sure the second level cache provider (hibernate-infinispan, e.g.) is available on the classpath.
Add Comment
Please, Sign In to add comment