Advertisement
Guest User

Untitled

a guest
Jul 13th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.87 KB | None | 0 0
  1. @ComponentScan
  2. @EnableJpaRepositories
  3. public class Container {
  4. private static AnnotationConfigApplicationContext context;
  5.  
  6. static {
  7. context = new AnnotationConfigApplicationContext(Container.class);
  8. }
  9.  
  10. public static <T> T get(Class<T> classType) {
  11. return context.getBean(classType);
  12. }
  13. }
  14.  
  15. @Configuration
  16. @EnableTransactionManagement
  17. @EnableAutoConfiguration
  18. @PropertySource(value = { "classpath:database.${system.state}.properties"})
  19. public class HibernateConfiguration {
  20.  
  21. @Autowired
  22. private Environment environment;
  23.  
  24. @Bean
  25. public LocalSessionFactoryBean sessionFactory() {
  26. LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
  27.  
  28. sessionFactoryBean.setDataSource(dataSource());
  29. sessionFactoryBean.setPackagesToScan("com.internal.apps.common.models");
  30. sessionFactoryBean.setHibernateProperties(hibernateProperties());
  31.  
  32. return sessionFactoryBean;
  33. }
  34.  
  35. @Bean
  36. public DataSource dataSource() {
  37. BasicDataSource dataSource = new BasicDataSource();
  38.  
  39. dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
  40. dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
  41. dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
  42. dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
  43.  
  44. return dataSource;
  45. }
  46.  
  47. private Properties hibernateProperties() {
  48. Properties properties = new Properties();
  49.  
  50. properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
  51. properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
  52. properties.put("hibernate.cache.region.factory_class", environment.getRequiredProperty("hibernate.cache.region.factory_class"));
  53. properties.put("hibernate.jdbc.batch_size", environment.getRequiredProperty("hibernate.jdbc.batch_size"));
  54. properties.put("hibernate.jdbc.fetch_size", environment.getRequiredProperty("hibernate.jdbc.fetch_size"));
  55.  
  56. return properties;
  57. }
  58.  
  59. @Bean
  60. @Autowired
  61. public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
  62. HibernateTransactionManager txManager = new HibernateTransactionManager();
  63. txManager.setSessionFactory(sessionFactory);
  64. return txManager;
  65. }
  66. }
  67.  
  68. jdbc.driverClassName=com.p6spy.engine.spy.P6SpyDriver
  69. jdbc.url=url
  70. jdbc.username=un
  71. jdbc.password=pw
  72.  
  73. hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
  74. hibernate.show_sql=false
  75. hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
  76. hibernate.jdbc.use_get_generated_keys=true
  77.  
  78. hibernate.jdbc.batch_size=50
  79. hibernate.jdbc.fetch_size=200
  80.  
  81. at com.hb.apps.margins.common.Container.<clinit>(Container.java:18)
  82. ... 10 more
  83. Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
  84. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)
  85. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882)
  86. at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
  87. at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
  88. at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:319)
  89. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
  90. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
  91. ... 21 more
  92. 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.
  93. at org.hibernate.cache.internal.NoCachingRegionFactory.buildEntityRegion(NoCachingRegionFactory.java:66)
  94. at org.hibernate.internal.SessionFactoryImpl.determineEntityRegionAccessStrategy(SessionFactoryImpl.java:619)
  95. at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:332)
  96. at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)
  97. at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879)
  98. ... 26 more
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement