엔티티를 영구 저장하는 환경, 엔티티를 영구 저장하기 위해 보관하는 가상의 데이터베이스
등과 같이 엔티티 관리하며 성능 최적화를 함

EntityManagerFactory는 JPA에서 EntityManager을 생성하는 공장
@Configuration
public class JpaConfig {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
// EntityManagerFactory 설정
}
}
JPA에서 실제로 데이터베이스 작업을 수행하는 핵심 객체
EntityManager em = emf.createEntityManager();
// 1. 엔티티 찾기
Member member = em.find(Member.class, "id1");
// 2. 엔티티 저장
em.persist(new Member("id2", "wondi2"));
// 3. 엔티티 수정 - 자동으로 변경 감지
member.setName("wondi");
// 4. 엔티티 삭제
em.remove(member);
EntityTransaction tx = em.getTransaction();
try {
tx.begin(); // 트랜잭션 시작
// 데이터베이스 작업 수행
tx.commit(); // 모든 작업이 성공하면 커밋
} catch (Exception e) {
tx.rollback(); // 문제가 생기면 모든 작업을 취소
}
EntityManager는 엔티티의 생명주기를 관리함


em.persist(member);em.detach(member);
em.remove(member);
Member member = new Member();
member.setID("member1")
member.setUsername("wondi");
//1차 캐시에 저장됨
em.persist(member);
//1차 캐시에서 조회
Member findMember = em.find(Member.class, "member1");


Member findMember2 = em.find(Member.class, "member2");
member2를 했을 때,