[우아한테크코스] 6월 28일 TIL
[JPA] 객체 매핑하기
-
@Entity
JPA가 관리할 객체 -
@Id
DB PK와 매핑할 컬럼
jpa는 특정 db에 종속적이지 않은 기술, 각 db 문법이 다른 문제 해결 -> Dialect로 하나로 통일해서 jpa가 사용하도록 hibernate.dialect
가 도윰
- 엔티티 매니저 설정
Persistence에서 persistence.xml을 통해 설정 정보 조회, Persistence로부터 EntityManagerFactory 생성, EntityManagerFactory로부터 EntityManager 생성
EntityManagerFactory는 서버 띄울 때 로딩하고, 유저가 접근할 때마다 여기서 빼서 쓰는 것
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
try{
Member member = new Member();
member.setId(100L);
member.setName("안녕??");
em.persist(member);
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
em.close();
}
emf.close();
이렇게 엔티티 매니저 만들고 사용했으면 닫는 과정도 필요
엔티티 매니저 팩토리는 하나만 생성해서 공유
엔티티 매니저는 쓰레드 간에 공유
JPA의 모든 데이터 변경은 트랜잭션 안에서 실행