반응형
spring docs 안에서 제공해주는 설정 코드 입니다.
https://docs.spring.io/spring-data/jpa/reference/repositories/create-instances.html
@Configuration
@EnableJpaRepositories(
basePackages = {"com.~~~repository path"},
transactionManagerRef = "",
entityManagerFactoryRef = ""
)
@EnableTransactionManagement
class ApplicationConfig {
@Bean
public DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.HSQL).build();
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("com.acme.domain");
factory.setDataSource(dataSource());
return factory;
}
@Bean
public PlatformTransactionManager transactionManager(
EntityManagerFactory entityManagerFactory) {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory);
return txManager;
}
}
entityManagerFactory의 경우는 이런 방식으로도 사용됩니다.
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder,
DataSource dataSource) {
return builder
.dataSource(dataSource)
.packages("com.~~~packagesPath")
.persistenceUnit("Key 값으로 사용하고싶은 명칭")
.build();
}
public PlatformTransactionManager transactionManager(
EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
반응형
'Spring' 카테고리의 다른 글
JPA Could not write JSON: failed to lazily initialize a collection of role 에러 해결 (0) | 2024.04.04 |
---|---|
Spring database config bean 다중 설정 예제 by JPA (0) | 2024.04.04 |
Spring AOP, AOP 용어 정리 (0) | 2022.07.05 |
[Spring Boot] @SpringBootApplication (0) | 2022.06.30 |
@WebServlet, @Controller 의 차이 (0) | 2022.06.01 |