오블완 3

[JPA] 영속성 관리[3]

엔티티 등록EntityManagerFactory emf = Persistence.createEntityManagerFactory("jakarta.persistence");EntityManager em = emf.createEntityManager();EntityTransaction tx = em.getTransaction();//엔티티 매니저는 데이터 변경 시 트랜잭션을 시작해야한다.tx.begin();        em.persist(memberA);em.persist(memberB);//여기까진 insert sql을 데이터베이스에 보내지 않는다.        //commit하는 순간 insert sql을 보낸다.tx.commit();Colored by Color Scriptercs 엔티티 매니저는 트..

스프링 2024.11.27

[JPA] 영속성 관리[2]

영속성 컨텍스트의 특징 1. 영속성 컨텍스트는 엔티티를 식별자 값(@Id)으로 구분한다.    따라서 영속 상태는 식별자 값이 반드시 있어야 한다.2. 영속성 컨텍스트에 엔티티를 저장하면 JPA는 트랜잭션을 커밋하는 순간 엔티티를 데이터베이스에 반영하며, 이것을 플러시(flush)라 한다.3. 영속성 컨텍스트가 엔티티를 관리하면 다음과 같은 장점이 있다.1차 캐시동일성 보장트랜잭션을 지원하는 쓰기 지연변경 감지지연 로딩 엔티티 조회 영속성 컨텍스트는 내부에 캐시를 가지고 있는데 이것을 1차 캐시라 한다. 영속 상태의 엔티티는 모두 이곳에 저장된다.1차 캐시의 키는 식별자 값(@Id)이고 이 값은 데이터베이스 기본 키와 매핑되어 있다.ex) Member member = em.find(Member.class..

스프링 2024.11.26

[JPA] 영속성 관리[1]

엔티티 매니저 엔티티 매니저는 엔티티를 저장, 수정, 삭제, 조회하는 등의 일을 처리한다. 엔티티를 관리자는 관리자인셈.엔티티 매니저는 엔티티 매니저 팩토리에서 생성하여 사용한다.  영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어로 "엔티티를 영구 저장하는 환경" 이라는 뜻이다.엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다.ex) em.persist(member);-> persist() 메소드는 엔티티 매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장한다. 엔티티의 생명주기 1. 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계 없는 상태순수한 객체 상태이며 저장하지 않은 상태ex)Member member = new M..

스프링 2024.11.25
728x90
반응형