Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. @Configuration
  2. @EnableTransactionManagement
  3. public class HibernateConfiguration
  4. {
  5. private final Environment _environment;
  6.  
  7. @Autowired
  8. public HibernateConfiguration(Environment _environment) {this._environment = _environment;}
  9.  
  10. @Bean(name = "flyway", initMethod = "migrate")
  11. public Flyway flyway() throws Exception
  12. {
  13. Flyway flyway = new Flyway();
  14. flyway.setDataSource(restDataSource());
  15. flyway.setLocations("../migration");
  16. flyway.setBaselineOnMigrate(true);
  17. flyway.setBaselineVersionAsString("0.0.1");
  18. flyway.repair();
  19. return flyway;
  20. }
  21.  
  22. @DependsOn({"flyway"})
  23. @Bean(name = "sessionFactory")
  24. public LocalSessionFactoryBean sessionFactory() throws PropertyVetoException
  25. {
  26. LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
  27. sessionFactory.setDataSource(restDataSource());
  28. sessionFactory.setPackagesToScan("....entity"); //Необходимо указать пакет, где находятся персистентные классы
  29. sessionFactory.setHibernateProperties(hibernateProperties());
  30. return sessionFactory;
  31. }
  32.  
  33. @Bean(name = "dataSource")
  34. public DataSource restDataSource() throws PropertyVetoException
  35. {
  36. ComboPooledDataSource dataSource = new ComboPooledDataSource();
  37. dataSource.setDriverClass(_environment.getProperty("jdbc.driverClassName"));
  38. dataSource.setJdbcUrl(_environment.getProperty("jdbc.url"));
  39. dataSource.setUser(_environment.getProperty("jdbc.user"));
  40. dataSource.setPassword(_environment.getProperty("jdbc.pass"));
  41.  
  42. dataSource.setInitialPoolSize(1);
  43. dataSource.setMinPoolSize(1);
  44. dataSource.setAcquireIncrement(1);
  45. dataSource.setMaxIdleTime(60 * 10);
  46. dataSource.setMaxConnectionAge(60 * 60 * 24);
  47. dataSource.setAutomaticTestTable("system_connection_test_table");
  48. dataSource.setIdleConnectionTestPeriod(60 * 4);
  49.  
  50. return dataSource;
  51. }
  52.  
  53. @Bean
  54. public HibernateTransactionManager transactionManager(SessionFactory sessionFactory)
  55. {
  56. HibernateTransactionManager txManager = new HibernateTransactionManager();
  57. txManager.setSessionFactory(sessionFactory);
  58. return txManager;
  59. }
  60.  
  61. private Properties hibernateProperties()
  62. {
  63. return new Properties()
  64. {
  65. {
  66. setProperty("hibernate.hbm2ddl.auto", _environment.getProperty("hibernate.hbm2ddl.auto"));
  67. setProperty("hibernate.dialect", _environment.getProperty("hibernate.dialect"));
  68. setProperty("hibernate.globally_quoted_identifiers", "true");
  69. setProperty("hibernate.connection.CharSet", "utf8");
  70. setProperty("hibernate.connection.characterEncoding", "utf8");
  71. setProperty("hibernate.connection.useUnicode", "true");
  72. setProperty("hibernate.show_sql", _environment.getProperty("hibernate.show_sql"));
  73. }
  74. };
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement