Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #PrimaryDB
- spring:
- datasource:
- type: com.zaxxer.hikari.HikariDataSource
- url: jdbc:h2:file:./target/h2db/db/********;DB_CLOSE_DELAY=-1
- username: **********
- password:
- #PartnerDB
- partner:
- datasource:
- type: com.zaxxer.hikari.HikariDataSource
- url: jdbc:mysql://localhost:******/partner
- username: root
- password:
- driver-class-name: org.mysql.jdbc.Driver
- package com.*******.config;
- import com.sun.corba.se.spi.orbutil.fsm.Input;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Primary;
- import org.springframework.orm.jpa.JpaTransactionManager;
- import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import javax.persistence.EntityManagerFactory;
- import javax.sql.DataSource;
- @Configuration
- @EnableTransactionManagement
- public class PrimaryDbConfig {
- @Bean
- @Primary
- @ConfigurationProperties("spring.datasource")
- public DataSourceProperties defaultDataSourceProperties() {
- return new DataSourceProperties();
- }
- @Bean
- @Primary
- @ConfigurationProperties("spring.datasource")
- public DataSource defaultDataSource() {
- return defaultDataSourceProperties().initializeDataSourceBuilder().build();
- }
- @Bean(name = "entityManagerFactory")
- @Primary
- public LocalContainerEntityManagerFactoryBean defaultEntityManagerFactory(
- EntityManagerFactoryBuilder builder) {
- return builder
- .dataSource(defaultDataSource())
- .packages(Input.class)
- .persistenceUnit("default")
- .build();
- }
- @Bean(name = "transactionManager")
- @Primary
- public JpaTransactionManager db2TransactionManager(@Qualifier("entityManagerFactory") final EntityManagerFactory emf) {
- JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(emf);
- return transactionManager;
- }
- }
- import com.*****.domain.******;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.boot.autoconfigure.domain.EntityScan;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
- import org.springframework.orm.jpa.JpaTransactionManager;
- import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import javax.persistence.EntityManagerFactory;
- import javax.sql.DataSource;
- import java.util.Properties;
- @Configuration
- @EnableTransactionManagement
- @EntityScan(basePackages = "com.*********.domain")
- @EnableJpaRepositories(transactionManagerRef = "partnerTransactionManager", entityManagerFactoryRef = "partnerEntityManagerFactory", basePackages = "com.carrental.repository")
- public class PartnerDbConfig {
- @Bean
- @ConfigurationProperties("partner.datasource")
- public DataSourceProperties partnerDataSourceProperties() {
- return new DataSourceProperties();
- }
- @Bean
- @ConfigurationProperties("partner.datasource")
- public DataSource partnerDataSource() {
- return partnerDataSourceProperties().initializeDataSourceBuilder().build();
- }
- @Bean(name = "partnerEntityManagerFactory")
- public LocalContainerEntityManagerFactoryBean partnerEntityManagerFactory(
- EntityManagerFactoryBuilder builder) {
- Properties properties = new Properties();
- properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
- LocalContainerEntityManagerFactoryBean emf = builder
- .dataSource(partnerDataSource())
- .packages(*****.class)
- .persistenceUnit("******")
- .build();
- emf.setJpaProperties(properties);
- return emf;
- }
- @Bean(name = "partnerTransactionManager")
- public JpaTransactionManager db2TransactionManager(@Qualifier("partnerEntityManagerFactory") final EntityManagerFactory emf) {
- JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(emf);
- return transactionManager;
- }
- }
- package com.******.config;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
- import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- @SpringBootApplication(
- scanBasePackages = {"com.********"},
- exclude = { DataSourceAutoConfiguration.class,
- HibernateJpaAutoConfiguration.class,
- DataSourceTransactionManagerAutoConfiguration.class})
- @EnableTransactionManagement
- public class SpringbootMultipleDatasourcesApplication {
- public static void main(String[] args) {
- SpringApplication.run(SpringbootMultipleDatasourcesApplication.class, args);
- }
- }
- 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.
- 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.
- 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