Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.config;
- import com.zaxxer.hikari.HikariConfig;
- import com.zaxxer.hikari.HikariDataSource;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- 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.orm.jpa.vendor.HibernateJpaVendorAdapter;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import java.util.Properties;
- /**
- *
- *
- *
- */
- @Configuration
- @EnableJpaRepositories(basePackages = {
- "com.example"
- })
- @ComponentScan("com.example")
- @EnableTransactionManagement
- public class PersistenceContext {
- @Bean
- public HikariDataSource dataSource() {
- HikariConfig config = new HikariConfig();
- //log.debug(String.format("---> Starting database connection with Driver: %s", databaseProperties.getConnection().getDriver()));
- //System.out.println("DRIVER::"+databaseProperties.getConnection().getDriver());
- config.setConnectionTestQuery("SELECT 1 FROM DUAL");
- config.setPoolName("jahez-api-v2-pool");
- config.setDriverClassName("oracle.jdbc.driver.OracleDriver");
- config.setJdbcUrl("jdbc:oracle:thin:@localhost:1521/jahezdb");
- config.setUsername("test");
- config.setPassword("test123456");
- config.setMaximumPoolSize(2);
- config.setMinimumIdle(1);
- config.setLeakDetectionThreshold(2000);
- config.setIdleTimeout(600000);
- config.setMaxLifetime(1800000);
- config.setRegisterMbeans(true);
- return new HikariDataSource(config);
- }
- @Bean
- public JpaTransactionManager transactionManager() {
- JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
- return transactionManager;
- }
- @Bean
- public HibernateJpaVendorAdapter hibernateJpaVendorAdapter() {
- return new HibernateJpaVendorAdapter();
- }
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- final Properties properties = new Properties();
- final LocalContainerEntityManagerFactoryBean lC = new LocalContainerEntityManagerFactoryBean();
- lC.setDataSource(dataSource());
- lC.setJpaVendorAdapter(hibernateJpaVendorAdapter());
- lC.setPackagesToScan("com.example");
- properties.setProperty("hibernate.hbm2ddl.auto", "validate");
- properties.setProperty("hibernate.dialect","com.example.demo.repository.Oracle10gDialectExtended");
- properties.setProperty("hibernate.jdbc.batch_size", "50");
- properties.setProperty("hibernate.default_schema", "test");
- properties.setProperty("hibernate.show_sql", "true");
- properties.setProperty("hibernate.cache.use_second_level_cache", "true");
- properties.setProperty("hibernate.cache.use_query_cache", "true");
- properties.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.EhCacheRegionFactory");
- properties.setProperty("javax.persistence.sharedCache.mode", "ENABLE_SELECTIVE");
- properties.setProperty("hibernate.connection.characterEncoding", "utf8");
- properties.setProperty("hibernate.connection.CharSet", "utf8");
- properties.setProperty("hibernate.connection.useUnicode", "true");
- properties.setProperty("hibernate.connection.defaultNChar", "true");
- lC.setJpaProperties(properties);
- return lC;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement