Entity Manager 설정
EntityManagerFactory
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
- persistence.xml의 persistence unit에서 jpabook을 찾아 EMF를 생성
- JPA 동작 기반 객체와 DB 커넥션 풀 생성
- 어플리케이션 전체에서 딱 한 번만 생성하고 공유해서 사용
EntityManager
EntityManager em = emf.createEntityManager();
- DB 커넥션을 유지하며 DB와 통신
- 가상의 DB로 생각하면 됨
종료
em.close();
emf.close();
- 사용이 끝난 EM, EMF는 모두 반드시 종료해야 한다.
Transaction 관리
EntityTransaction tx = em.getTransaction();
try {
tx.begin();
logic(em);
tx.commit();
} catch (Exception e) {
tx.rollback();
}
- JPA의 데이터 변경은 Transaction 내에서 실행
- EM에서 Transaction API를 호출하여 실행
Business Logic
CREATE
Member member = Member.builder()
.id("id1")
.userName("이름")
.age(23)
.build();
em.persist(member);
READ
Member findMember = em.find(Member.class, id);
UPDATE
member.setAge(21);
- Entity(클래스)의 값만 변경해도 JPA가 자동으로 추적하여 DB 값을 변경
DELETE
em.remove(member);
- member 객체의 id를 사용하여 SQL 자동 생성