기본 구조
- EntityManagerFactory 초기화
- DB작업이 필요할 때마다
- EntityManager 생성
- EntityManager로 DB조작
- EntityTransaction으로 트랜잭션 관리
- BUT!!! 스프링과 연동시에는 대부분 스프링이 대신 처리하므로 매핑 설정 중심으로 작업을 권장!
Entity기본 객체
- EntityManagerFactory
Persistance
객체를 이용하여 _createEntityManagerFactory
_메서드로 사용할 DB를 생성한다.- 해당 객체로 EntityManager 객체를 생성해준다.
EntityManagerFactory emf = Persistance.createEntityManagerFactory("jspbegin");
- EntityManager
EntityManagerFactory
객체를 이용하여 DB를 조작할 Manager를 생성한다.- 해당 단위로 영속성 컨텍스트를 관리한다.
EntityManager manager = emf.createEntityManager();
- EntityTransaction
EntityManager
객체를 이용하여 트랜젝션을 발생시킬 객체를 생성한다.- 트랜젝션을 발생시키는 객체(ex.persist, find, …)
EntityTransaction transaction = entityManager.getTransaction();
기본 코드 구조
EntityManagerFactory emf = Persistance.createEntityManagerFactory("jspbegin");
EntityManager manager = emf.createEntityManager();
EntityTransaction transaction = entityManager.getTransaction();
try{
transaction.begin();
...(로직작업)
} catch ( Exception e) {
e.printStackTrace();
transaction.rollback();
} finally {
manager.close();
}
emf.close();
영속 컨텍스트
- EntityManager 단위로 영속성 컨텍스트를 관리한다.
- 엔티티를 메모리에 보관한다.
- 커밋 시점에 영속 컨텍스트의 변경 내역을 DB에 반영한다.
- Application에 생성된 엔티티 객체를 우선 영속 컨텍스트에 객체를 저장한다.
- 후에
commit()
시 DB에 저장된다. - 만약
commit()
전에 데이터에 데이터의 변경이 일어나면UPDATE
쿼리를 날린다.
- 후에
728x90
반응형
'FrameWorks > JPA' 카테고리의 다른 글
JPA Entity 단위 기본 CRUD처리 (0) | 2023.08.26 |
---|---|
JPA 세팅 및 기초 (0) | 2023.08.24 |
댓글