-
1. 비영속
@Entity 상태의 객체를
Member member = new Member(); 로 생성후
member.setId("momo")
member.setAge(24)
로 수정한다고 하여도 아직 컨텍스트에 포함되지않은 비영속 상태이다
2. 영속
위에 member 엔티티가 영속상태(영속성컨텍스트가 관리하는 엔티티)로 만드려면
엔티티 매니저를 통해서 영속화 시켜야한다.
ex 1 ) em.persist(member)
ex 2 ) em.find(Member.class,member.getId())
3. 준영속
준영속 상태는 영속성 컨텍스트가 관리하던 영속상태의 엔티티를
영속성컨텍스트가 관리하지 않을시 준영속으로 변경시 준영속상태가됨
ex 1 ) em.detach(member) //하나의 엔티티를 준영속으로 변경하기
ex 2 ) em.close() , em.clear() // 엔티티 매니저가 가지고있는 전체 준영속으로 변경
준영속상태는 Member member2 = em.merge(member);
상태로 영속상태로 만들수있다.
준영속 객체이외의 일반 비영속 객체도 merge를 통해 영속상태로 만들수있다
4. 삭제
엔티티를 영속성 컨텍스트와 데이터베이스에서 삭제
em.remove(member) ;
'개발 > java' 카테고리의 다른 글
JPA 기본키 저장 (0) 2015.12.28 JPA update 변경감지 (0) 2015.12.28 EntityManagerFactory와 EntityManager 의 사용 (0) 2015.12.28 JPA 에서 글등록 및 수정 삭제 간단예제 (0) 2015.12.28 SPRING에서 BindingResult 사용하기 (0) 2015.12.22