엔티티 매니저
- JPA의 핵심 인터페이스
- 자바 어플리케이션과 데이터베이스 간의 상호작용을 관리하는 역할
주요 기능
- CRUD 작업 수행 (엔티티의 상태 변경)
- persist : 새로운 엔티티를 영속성 컨텍스트에 등록하고 데이터베이스에 저장
- find : 데이터베이스에서 특정 엔티티 검색
- merge : 엔티티 객체의 변경 사항을 데이터베이스와 동기화
- remove : 엔티티 삭제
- 영속성 컨텍스트 관리
- 영속성 컨텍스트를 통해 엔티티 객체의 상태를 추적하고 관리
- 이를 통해 객체의 변경을 감지하고 데이터베이스와 동기화하는 역할 수행
- 트랜잭션 관리
- 데이터베이스 트랜잭션의 시작, 커밋, 롤백 등을 관리하여 무결성 보장
- JPQL 쿼리 실행
- Java Persistance Query Language를 사용하여 객체 지향 쿼리를 작성하고 실행할 수 있도록 지원
- JPQL이나 Native Query를 이용해 직접 DB로부터 데이터를 불러옴
- 쓰기 지연 저장소에 있는 쿼리들을 flush하여 DB와 동기화
엔티티 매니저는 영속성 컨텍스트를 제어하는 도구이며, 영속성 컨텍스트는 엔티티의 상태를 관리하는 저장소