해결된 질문
작성
·
121
1
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
EntityTransaction tm = em.getTransaction();
tm.begin();
try {
Member findMember = em.find(Member.class, 1L);
findMember.setName("HelloJPA");
tm.commit();
} catch (Exception e) {
tm.rollback();
} finally {
em.close();
}
emf.close();
여기서 emf도 finally에 들어가도 되는거 아닌가요?
꼭 밖에 선언한 이유가 있을까요?
답변 1
0
안녕하세요. lbd4946님
개념적으로 emf는 애플리케이션 전체에서 딱 한번 만들어서 공유합니다. 따라서 다음과 같이 생각해보시면 됩니다.
emf 생성(애플리케이션 시작 시점에 시작)
- em1 생성, 종료
- em2 생성, 종료
- em3 생성, 종료
emf 종료(애플리케이션 종료 시점에 종료)
감사합니다.