JPA 구동 방식

  1. Spring Boot → application.yml/application.properties 설정을 읽음 : AutoConfiguration
  2. Spring Boot → 내부적으로 LocalContainerEntityManagerFactoryBean을 사용해 EntityManagerFactory 생성
  3. EntityManagerFactory를 통해 필요한 시점에 EntityManager를 생성

Autoconfiguration Setup File: application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 1234
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect

Example

@Service
public class UserService {

    /* Entity Manager는 application.yml 설정 기반으로 
     * EntityManagerFactory 에서 만들어진다. 
     */
    @PersistenceContext
    private EntityManager em;
     
    public User findUser(Long id) {
        return em.find(User.class, id);
    }
}