- 엔티티 메니저 팩토리
- 엔티티 메니저 생성
- 스레드간의 공유 가능
- 엔티티 메니저
- 동시성 문제로 스레드간의 공유 절대 금지
- 데이터 베이스 연결이 필요한 시점까지 커넥션을 생성하지 않음
// 1 factory 생성
// 프로그램 전체에서 한번만 생성하며 공유 해서 사용
// 스레드간 공유 가능
final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("jpastudy");
// 2 manager 생성
// entity 를 db에 등록/수정/조회/삭제 할수 있음
// 동시성 문제로 스레드간에 공유 및 재 사용 할 수 없음
final EntityManager entityManager = entityManagerFactory.createEntityManager();
// 3 transaction 생성
// 데어터를 수정/삭제/추가시 필요
final EntityTransaction entityTransaction = entityManager.getTransaction();
try {
// 4 transaction 시작
entityTransaction.begin();
logic(entityManager);
// 5. transaction 커밋
entityTransaction.commit();
} catch (Exception ex) {
// 롤백 -
entityTransaction.rollback();
ex.printStackTrace();
} finally {
// 6 manager 종료
entityManager.close();
}
// 7. factory 종료
entityManagerFactory.close();
'java' 카테고리의 다른 글
[Mockito] doReturn / thenReturn (0) | 2021.08.04 |
---|---|
[Java] Jackson - JSON 파일 읽기 - 저장 (0) | 2021.04.15 |
[Lombok] @Builder (0) | 2020.10.15 |
[JPA] 영속성 컨텍스트(persistence context) (0) | 2020.08.31 |
[JPA] jpa 설정 - persistence.xml (0) | 2020.08.29 |