JPA 구동 방식
- Spring Boot →
application.yml/application.properties 설정을 읽음 : AutoConfiguration
- Spring Boot → 내부적으로
LocalContainerEntityManagerFactoryBean을 사용해 EntityManagerFactory 생성
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
- 위 설정을 기반으로 Spring Boot는 자동으로
EntityManagerFactory를 생성하고, 내부적으로 @PersistenceContext 또는 @Autowired EntityManager를 통해 EntityManager를 주입해줍니다.
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);
}
}