Persistence Context2(조회)

Mina Park·2022년 8월 27일
0
  1. 1차 캐시에서 조회

  2. 데이터베이스에서 조회

  3. 영속 엔티티의 동일성 보장

public class jpaMainPersistence2 {

    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
        EntityManager em = emf.createEntityManager(); //행동 단위마다 entity manager 생성

        EntityTransaction tx = em.getTransaction();
        tx.begin(); //트랜잭션 시작

        try {
            //영속
            Member member1 = em.find(Member.class, 101L); //DB 쿼리 호출
            Member member2 = em.find(Member.class, 101L); //1차 캐시 사용(영속성 컨텍스트)

            System.out.println("result = " + (member1 == member2)); //true
            //영속 엔티티의 동일성 보장(같은 트랜잭션 안에서)

            tx.commit();

        } catch (Exception e) {
            tx.rollback();
        } finally {
            em.close(); //자원 사용 종료 후에는 entity manager 클로즈
        }

        emf.close();
    }

0개의 댓글