[DB] Entity Life Cycle

Hyunul·2022년 12월 4일
0

DB

목록 보기
1/1

1) Entity Life Cycle in JPA Level


비영속(new/transient) : 영속성 컨텍스트와 관련이 없는 상태

영속(managed) : EntityManager를 통해 엔티티를 영속성 컨텍스트에 저장되어 영속성 컨텍스트가 관리하는 상태

준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태

clear() : 영속성 컨텍스트를 초기화해 해당 영속성 컨텍스트에 존재하는 모든 엔티티를 준영속 상태로 만듬. 새로 만든 영속성 컨텍스트 상태와 동일하고 같은 엔티티를 조회할 때 SELECT 쿼리가 발생. 1차 캐시에 관계없는 쿼리를 확인하고 싶을 때 유용함.

close() : 영속성 컨텍스트를 종료하고 관리하던 모든 엔티티가 준영속 상태가 됨

merge() : 비영속 상태의 엔티티도 영속 상태로 만들 수 있음. 파라미터로 넘어온 엔티티의 식별자 값으로 영속성 컨텍스트를 조회하고 찾는 엔티티가 없으면 DB에서 조회하고 영속 상태로 만듬. 만약 DB에서도 없으면 새로운 엔티티를 생성함. 만약 불러온 엔티티와 파라미터로 넘긴 객체와 값이 다를 경우 값을 채우고 병합이 이뤄짐. (save나 update로 이뤄짐)

0개의 댓글