EntityManager em = emf.createEntityManager();
// 실제 동작하는 코드를 작성 ( DB에서 데이터를 불러오기, 또는 저장 )
em.close();
emf.close();
사용하는 클래스에서 위처럼 작성
EntityManagerFactory 는 어플리케이션 로딩 시 1번만 생성
실제 하나의 동작을 수행할 때마다 (트랜잭션 단위로 동작할 때마다) EntityManager를 생성해서 사용한다.
데이터 어노테이션
@Entity : 로딩시 JPA에게 해당 테이블로 맵핑하라고 알려주는 기능
@Id ( javax.persistence ): 처음 테이블 등록 시 JPA에게 pk를 알려줘야 함
@Table : 클래스명과 DB의 테이블명이 다를때 테이블명을 작성하면 JPA가 보고 테이블명으로 맵핑
@Colum : 컬럼명이 다르면 해당 컬럼명으로 맵핑
트랜잭션 사용
public static void main(String[] args){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
try{
Member member = new Member();
member.setId(1L);
member.setName("HelloA");
em.persist(member);
tx.commit();
}catch (Exception e){
tx.rollback();
}finally {
em.close();
}
emf.close();
}
Member findMember = em.find(Member.class, 1L)
findMember.setName("HelloJpa);
Member findMember = em.find(Member.class, 1L);
em.remove(findMember)
정리
JPQL