본문 바로가기
IT/spring

스프링 EntityManagerFactory

by 뉴코딩맨 2023. 7. 4.
스프링에서 EntityManagerFactory는 JPA(Java Persistence API)의 핵심 요소로서, 데이터베이스와의 연결을 관리하는 역할을 합니다. EntityManagerFactory의 개념과 사용법에 대해 알아보고, 예제를 통해 설명하겠습니다.
 
 

EntityManagerFactory란?

EntityManagerFactory는 JPA에서 엔티티 매니저를 생성하고 관리하는 팩토리입니다. 엔티티 매니저는 데이터베이스와의 통신을 담당하며, 엔티티의 영속성 컨텍스트를 관리합니다. EntityManagerFactory는 애플리케이션에서 단 하나만 생성되며, 여러 스레드에서 공유하여 사용할 수 있습니다.
 

EntityManagerFactory 예제

다음은 스프링에서 EntityManagerFactory를 생성하고 사용하는 예제 코드입니다.
 
@Configuration
@EnableJpaRepositories(basePackages = "com.example.repository")
public class JpaConfig {
    
    @Autowired
    private DataSource dataSource;
    
    @Bean
    public EntityManagerFactory entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
        factory.setDataSource(dataSource);
        factory.setPackagesToScan("com.example.entity");
        factory.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
        factory.afterPropertiesSet();
        return factory.getObject();
    }
    
    // 다른 빈들과 설정들...
}
 
위의 예제에서는 스프링의 @Configuration 어노테이션을 사용하여 JPA 설정을 정의합니다. entityManagerFactory 메소드에서는 LocalContainerEntityManagerFactoryBean을 생성하고, 필요한 설정을 적용한 후 EntityManagerFactory 객체를 반환합니다. 주요 설정은 다음과 같습니다.
  • dataSource: 데이터베이스 연결을 위한 DataSource 객체입니다.
  • packagesToScan: 엔티티 클래스가 위치한 패키지를 지정합니다.
  • JpaVendorAdapter: 사용할 JPA 공급자를 설정합니다. 위의 예제에서는 Hibernate를 사용하고 있습니다.
이렇게 생성된 EntityManagerFactory는 애플리케이션에서 사용되며, 엔티티 매니저를 생성할 때 활용됩니다.
 
 

결론

스프링의 EntityManagerFactory는 JPA와 데이터베이스 간의 연결과 엔티티의 영속성 컨텍스트 관리를 담당하는 중요한 요소입니다. EntityManagerFactory를 올바르게 설정하고 사용함으로써 데이터베이스와의 효율적인 상호작용을 실현할 수 있습니다.
 

'IT > spring' 카테고리의 다른 글

스프링 CrudRepository  (0) 2023.07.04
스프링 EntityManager  (0) 2023.07.04
스프링 PK 생성 전략  (0) 2023.07.04
스프링 영속성 컨텍스트 (Spring Persistence Context)  (0) 2023.07.04
스프링 쿼리 메소드 (Spring Query Methods)  (0) 2023.07.03

댓글