Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ComponentScan
- @EnableJpaRepositories
- public class Container {
- private static AnnotationConfigApplicationContext context;
- static {
- context = new AnnotationConfigApplicationContext(Container.class);
- }
- public static <T> T get(Class<T> classType) {
- return context.getBean(classType);
- }
- }
- @Configuration
- @EnableTransactionManagement
- @EnableAutoConfiguration
- @PropertySource(value = { "classpath:database.${system.state}.properties"})
- public class HibernateConfiguration {
- @Autowired
- private Environment environment;
- @Bean
- public LocalSessionFactoryBean sessionFactory() {
- LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
- sessionFactoryBean.setDataSource(dataSource());
- sessionFactoryBean.setPackagesToScan("com.internal.apps.common.models");
- sessionFactoryBean.setHibernateProperties(hibernateProperties());
- return sessionFactoryBean;
- }
- @Bean
- public DataSource dataSource() {
- BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
- dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
- dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
- dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
- return dataSource;
- }
- private Properties hibernateProperties() {
- Properties properties = new Properties();
- properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
- properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
- properties.put("hibernate.cache.region.factory_class", environment.getRequiredProperty("hibernate.cache.region.factory_class"));
- properties.put("hibernate.jdbc.batch_size", environment.getRequiredProperty("hibernate.jdbc.batch_size"));
- properties.put("hibernate.jdbc.fetch_size", environment.getRequiredProperty("hibernate.jdbc.fetch_size"));
- return properties;
- }
- @Bean
- @Autowired
- public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
- HibernateTransactionManager txManager = new HibernateTransactionManager();
- txManager.setSessionFactory(sessionFactory);
- return txManager;
- }
- }
- jdbc.driverClassName=com.p6spy.engine.spy.P6SpyDriver
- jdbc.url=url
- jdbc.username=un
- jdbc.password=pw
- hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
- hibernate.show_sql=false
- hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
- hibernate.jdbc.use_get_generated_keys=true
- hibernate.jdbc.batch_size=50
- hibernate.jdbc.fetch_size=200
- at com.hb.apps.margins.common.Container.<clinit>(Container.java:18)
- ... 10 more
- Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
- at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)
- at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882)
- at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
- at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
- at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
- ... 21 more
- 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.
- at org.hibernate.cache.internal.NoCachingRegionFactory.buildEntityRegion(NoCachingRegionFactory.java:66)
- at org.hibernate.internal.SessionFactoryImpl.determineEntityRegionAccessStrategy(SessionFactoryImpl.java:619)
- at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:332)
- at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)
- at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879)
- ... 26 more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement