Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Configuration
- @EnableTransactionManagement
- public class HibernateConfiguration
- {
- private final Environment _environment;
- @Autowired
- public HibernateConfiguration(Environment _environment) {this._environment = _environment;}
- @Bean(name = "flyway", initMethod = "migrate")
- public Flyway flyway() throws Exception
- {
- Flyway flyway = new Flyway();
- flyway.setDataSource(restDataSource());
- flyway.setLocations("../migration");
- flyway.setBaselineOnMigrate(true);
- flyway.setBaselineVersionAsString("0.0.1");
- flyway.repair();
- return flyway;
- }
- @DependsOn({"flyway"})
- @Bean(name = "sessionFactory")
- public LocalSessionFactoryBean sessionFactory() throws PropertyVetoException
- {
- LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
- sessionFactory.setDataSource(restDataSource());
- sessionFactory.setPackagesToScan("....entity"); //Необходимо указать пакет, где находятся персистентные классы
- sessionFactory.setHibernateProperties(hibernateProperties());
- return sessionFactory;
- }
- @Bean(name = "dataSource")
- public DataSource restDataSource() throws PropertyVetoException
- {
- ComboPooledDataSource dataSource = new ComboPooledDataSource();
- dataSource.setDriverClass(_environment.getProperty("jdbc.driverClassName"));
- dataSource.setJdbcUrl(_environment.getProperty("jdbc.url"));
- dataSource.setUser(_environment.getProperty("jdbc.user"));
- dataSource.setPassword(_environment.getProperty("jdbc.pass"));
- dataSource.setInitialPoolSize(1);
- dataSource.setMinPoolSize(1);
- dataSource.setAcquireIncrement(1);
- dataSource.setMaxIdleTime(60 * 10);
- dataSource.setMaxConnectionAge(60 * 60 * 24);
- dataSource.setAutomaticTestTable("system_connection_test_table");
- dataSource.setIdleConnectionTestPeriod(60 * 4);
- return dataSource;
- }
- @Bean
- public HibernateTransactionManager transactionManager(SessionFactory sessionFactory)
- {
- HibernateTransactionManager txManager = new HibernateTransactionManager();
- txManager.setSessionFactory(sessionFactory);
- return txManager;
- }
- private Properties hibernateProperties()
- {
- return new Properties()
- {
- {
- setProperty("hibernate.hbm2ddl.auto", _environment.getProperty("hibernate.hbm2ddl.auto"));
- setProperty("hibernate.dialect", _environment.getProperty("hibernate.dialect"));
- setProperty("hibernate.globally_quoted_identifiers", "true");
- setProperty("hibernate.connection.CharSet", "utf8");
- setProperty("hibernate.connection.characterEncoding", "utf8");
- setProperty("hibernate.connection.useUnicode", "true");
- setProperty("hibernate.show_sql", _environment.getProperty("hibernate.show_sql"));
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement