1차 캐시에서 조회

데이터베이스에서 조회

영속 엔티티의 동일성 보장
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();
    }