JPA - Entity 생명주기

test·2022년 1월 17일
0

JPA

목록 보기
3/5
post-thumbnail

Entity 생명주기 예제로 이해하기

비영속(new/transient)

객체를 생성한 상태(entity manager에 넣기 전, 즉 비영속 상태)

Member member = new Member();
member.setId("member1");
member.setUsername("username");

영속(managed)

생성한 객체를 entity manager에 persist. 즉 객체를 저장

// 객체를 생성한 상태에서(비영속)
Member member = new Member();
member.setId("member1");
member.setUsername("username");
// 영속성 컨텍스트 접근은 entity manager를 통해 한다
EntityManager em = emf.createEntityManager();
// 데이터 변경은 tansaction안에서 일어난다.
em.getTransaction().begin();
// 비영속 상태이던 객체를 저장, 즉 영속상태
em.persist(member);
  • 참고로 persist(영속상태)가 된다고 해서 DB에 query가 날아가는것은 아니고, commit을 해야 DB로 query가 날아간다

비영속(detached)

Entity를 영속성 컨텍스트에서 분리

em.detach(member);

삭제(removed)

객체를 삭제

em.remove(member);

참조 : 김영한님 JPA 강의

profile
bedev

0개의 댓글