|
09.08.2016, 17:59
#39289204
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
|
|
Участник
Откуда: Минск
Сообщения: 2 100
Рейтинг:
0
/ 0
|
|
|
|
Почему сначала иницилизируется бин entityManagerFactory а потом dataSourceInitializer
И как можно поменять их местами?
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() throws Exception {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
builder.setType(EmbeddedDatabaseType.H2);
return builder.build();
}
@Value("classpath:schema.sql")
private Resource H2_SCHEMA_SCRIPT;
@Value("classpath:test-data.sql")
private Resource H2_DATA_SCRIPT;
@Bean
public DataSourceInitializer dataSourceInitializer(final DataSource dataSource) {
final DataSourceInitializer initializer = new DataSourceInitializer();
initializer.setDataSource(dataSource);
initializer.setDatabasePopulator(databasePopulator());
return initializer;
}
private DatabasePopulator databasePopulator() {
final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
populator.addScript(H2_SCHEMA_SCRIPT);
populator.addScript(H2_DATA_SCRIPT);
return populator;
}
}
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
@Configuration
public class HibernateConfig {
@Autowired
DataSource dataSource;
private static Properties hibernateProperties() {
Properties hibernateProperties = new Properties();
hibernateProperties.setProperty("org.hibernate.envers.audit_table_suffix", "_H");
hibernateProperties.setProperty("org.hibernate.envers.revision_field_name", "AUDIT_REVISION");
hibernateProperties.setProperty("org.hibernate.envers.revision_type_field_name", "ACTION_TYPE");
hibernateProperties.setProperty("org.hibernate.envers.audit_strategy",
"org.hibernate.envers.strategy.ValidityAuditStrategy");
hibernateProperties.setProperty("org.hibernate.envers.audit_strategy_validity_end_rev_field_name",
"AUDIT_REVISION_END");
hibernateProperties.setProperty("org.hibernate.envers.audit_strategy_validity_store_revend_timestamp", "true");
hibernateProperties.setProperty("org.hibernate.envers.audit_strategy_validity_revend_timestamp_field_name",
"AUDIT_REVISION_END_TS");
hibernateProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
hibernateProperties.setProperty("hibernate.max_fetch_depth", "3");
hibernateProperties.setProperty("hibernate.jdbc.fetch_size", "50");
hibernateProperties.setProperty("hibernate.jdbc.batch_size", "10");
hibernateProperties.setProperty("hibernate.show_sql", "false");
return hibernateProperties;
}
@Bean
public HibernateJpaVendorAdapter jpaVendorAdapter() {
HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
hibernateJpaVendorAdapter.setShowSql(false);
hibernateJpaVendorAdapter.setGenerateDdl(true);
hibernateJpaVendorAdapter.setDatabase(Database.H2);
return hibernateJpaVendorAdapter;
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory);
return transactionManager;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws Exception {
HibernateJpaVendorAdapter vendorAdapter = jpaVendorAdapter();
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
// factory.setPersistenceUnitName("sample");
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("by.lesharb.springtest.domain");
factory.setDataSource(dataSource);
factory.setJpaProperties(hibernateProperties());
factory.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver());
return factory;
}
}
|
|
|