Пока я работаю над весенней загрузкой в спящем режиме, у меня возникла путаница с кодом управления транзакциями. Кто-нибудь может прояснить мои сомнения?
public class HibernateConfig {
@Value("${db.driver-class-name}")
private String DB_DRIVER;
@Value("${db.password}")
private String DB_PASSWORD;
@Value("${db.url}")
private String DB_URL;
@Value("${db.username}")
private String DB_USERNAME;
@Value("${hibernate.dialect}")
private String DB_DIALECT;
@Value("${hibernate.show_sql}")
private String DB_SHOW_SQL;
@Value("${entitymanager.packagesToScan}")
private String DB_PACAKAGESTOSCAN;
public DataSource dataSource() {
DriverManagerDataSource datasources = new DriverManagerDataSource();
datasources.setDriverClassName(DB_DRIVER);
datasources.setUrl(DB_URL);
datasources.setUsername(DB_USERNAME);
datasources.setPassword(DB_PASSWORD);
return datasources;
}
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionfactory = new LocalSessionFactoryBean();
sessionfactory.setDataSource(dataSource());
sessionfactory.setPackagesToScan(DB_PACAKAGESTOSCAN);
Properties hb_properties = new Properties();
hb_properties.put("hibernate.dialect", DB_DIALECT);
hb_properties.put("hibernate.show_sql", DB_SHOW_SQL);
return sessionfactory;
}
@Bean
public HibernateTransactionManager transactionManager() {
HibernateTransactionManager transactionManager = new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
return transactionManager;
}
}
Ну в вышеприведенном коде последний способ управления транзакциями, зачем нам писать? В этом методе кто-нибудь может объяснить, что происходит внутри?