Javatpoint Logo

Configuring Two Datasources in SpringBoot using Hibernate

By: rajith*** On: Fri Jun 16 14:04:13 IST 2017     Question Reputation0 Answer Reputation0 Quiz Belt Series Points0  0Blank User
Hi,

I am struggling a lot configuring two data sources in spring boot application.
I am using Hibernate for configuration.
I am getting Hibernate Mapping Exception:unknown entity

I am adding code snippet.Please kindly help on this.
@Configuration
@EnableTransactionManagement
public class DataSourceConfiguration
{

@Primary
@Bean
DataSource dataSource()
{
/*DataSource dataSource = null;
JndiTemplate jndi = new JndiTemplate();
try {
dataSource = (DataSource) jndi.lookup("java:comp/env/jdbc/dataSource");
} catch (NamingException e) {
e.printStackTrace();
}
return dataSource;*/
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://host:port/platform_qa?zeroDateTimeBehavior=convertToNull");
dataSource.setUsername("username");
dataSource.setPassword("password");
return dataSource;

}

//@Autowired
@Primary
@Bean(name ="sessionFactory")
public SessionFactory getSessionFactory(DataSource dataSource)
{

LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);
sessionBuilder.scanPackages("com.carecloud.auth.entity","com.carecloud.permission.api.entity");
System.out.println("Datasource packages scanned");
sessionBuilder.addProperties(getHibernateProperties());
return sessionBuilder.buildSessionFactory();
}

//@Autowired
@Primary
@Bean(name = "transactionManager")
public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) {
HibernateTransactionManager transactionManager = new HibernateTransactionManager(
sessionFactory);
return transactionManager;

}
private Properties getHibernateProperties() {
Properties properties = new Properties();
properties.put("hibernate.show_sql", "false");
properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
properties.put("hibernate.id.new_generator_mappings","false");
properties.put("hibernate.connection.zeroDateTimeBehavior","convertToNull");
return properties;
}

@Bean
DataSource auditDatasource()
{
/*DataSource dataSource = null;
JndiTemplate jndi = new JndiTemplate();
try {
dataSource = (DataSource) jndi.lookup("java:comp/env/jdbc/dataSource_audit");
} catch (NamingException e) {
e.printStackTrace();
}
return dataSource;*/
DriverManagerDataSource auditDatasource = new DriverManagerDataSource();
auditDatasource.setDriverClassName("com.mysql.jdbc.Driver");
auditDatasource.setUrl("jdbc:mysql://host:port/platform_qa_logging?zeroDateTimeBehavior=convertToNull");
auditDatasource.setUsername("username");
auditDatasource.setPassword("password");
return auditDatasource;

}

//@Autowired
@Bean(name ="auditSessionFactory")
public SessionFactory getAuditSessionFactory(DataSource auditDatasource)
{

LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(auditDatasource);
sessionBuilder.scanPackages("com.carecloud.audit.entity");
System.out.println("Audit Datasource packages scanned");
sessionBuilder.addProperties(getHibernateProperties());
return sessionBuilder.buildSessionFactory();
}

// @Autowired
@Bean(name = "auditTransactionManager")
public HibernateTransactionManager getAuditTransactionManager(
SessionFactory auditSessionFactory) {
HibernateTransactionManager transactionManager = new HibernateTransactionManager(
auditSessionFactory);
return transactionManager;

}


}
Up0Down

 
Please replyImage Created0Down

By: [email protected] On: Fri Jun 16 14:49:54 IST 2017 Question Reputation0 Answer Reputation0 Belt Series Points0 0User Image
Are You Satisfied :0Yes0No