Persistence Context3(등록)

Mina Park·2022년 8월 27일
0
  • 트랜잭션을 지원하는 쓰기 지연

 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 = new Member(150L, "A");
            Member member2 = new Member(160L, "B");

            em.persist(member1);
            em.persist(member2);
            System.out.println("====================");
            //커밋 단계 전까지는 영속성 컨텍스트에만 저장

            tx.commit();
            //커밋 단계에서 한꺼번에 쿼리
            //persistence.xml에서 갯수 옵션 지정 가능
            //<property name="hibernate.jdbc.batch_size" value="10"/>

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

        emf.close();
    }

0개의 댓글