public class HibernateBookStoreConfiguration { @Autowired private Environment env;
@Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { PropertySourcesPlaceholderConfigurer configHolder = new PropertySourcesPlaceholderConfigurer(); return configHolder; }
@Bean public DataSource dataSource() { BoneCPDataSource dataSource = new BoneCPDataSource(); dataSource.setUsername(env.getProperty(“connect.username”)); dataSource.setPassword(env.getProperty(“connect.password”)); dataSource.setDriverClass(env.getProperty(“connect.driver”)); dataSource.setJdbcUrl(env.getProperty(“connect.url”)); dataSource.setMaxConnectionsPerPartition(20); dataSource.setMinConnectionsPerPartition(3); return dataSource; }
@Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean(); entityManagerFactory.setPackagesToScan(“com.xyzlast.bookstore.entities”); entityManagerFactory.setDataSource(dataSource()); entityManagerFactory.setJpaVendorAdapter(hibernateJpaVendorAdapter()); entityManagerFactory.setJpaProperties(japProperties()); return entityManagerFactory; }
@Bean public Properties japProperties() { Properties properties = new Properties(); properties.put(“hibernate.dialect”, env.getProperty(“hibernate.dialect”)); return properties; }
@Bean public PlatformTransactionManager transactionManager() { JpaTransactionManager transactionManager = new JpaTransactionManager(); transactionManager.setDataSource(dataSource()); transactionManager.setEntityManagerFactory(entityManagerFactory().getObject()); return transactionManager; }
@Bean public HibernateJpaVendorAdapter hibernateJpaVendorAdapter() { HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter(); hibernateJpaVendorAdapter.setShowSql(true); return hibernateJpaVendorAdapter; }
// Hibernate를 이용하는 경우, 반드시 HibernateExceptionTranslator가 Bean에 등록되어야지 된다. @Bean public HibernateExceptionTranslator hibernateExceptionTranslator() { return new HibernateExceptionTranslator(); } }
출처: http://netframework.tistory.com/entry/12-queryDSL-Spring-Data-JPA [Programming is Fun] |