북리뷰/자바 ORM 표준 JPA 프로그래밍(2)
-
JPA 영속성 컨텍스트, 엔티티 생명주기, 변경 감지
영속성 컨텍스트(persistence context) 쉽게 말하면 엔티티를 영구 저장하는 환경이다. 즉, 엔티티 메니저로 엔티티를 저장하거나 조회하면 엔티티메니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 영속성 컨텍스트는 엔티티 메니저 당 하나씩 할당한다 엔티티의 생명주기 엔티티는 4가지 상태가 존재한다. - 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 상태 순수한 객체 상태이며, 아직 저장되지 않음. DB와 전혀 관련 없는 객체 - 영속 : 영속성 컨텍스트에 저장된 상태 - 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태 영속성 컨텍스트가 관리하지 않으므로 거의 비영속 상태에 가깝고, 그렇기에 지연 로딩을 할 수 없다. 하지만, 식별자 값을 가지고 있다는 특징이 있다. - 삭제 : 삭제된..
2023.12.11 -
JPA Entity Manager
엔티티 메니저 이름 그대로 엔티티를 관리하는 관리자다. 엔티티를 저장, 수정, 삭제, 조회 등 엔티티와 관련한 모든 일을 처리한다. JPA 대부분 기능은 엔티티 메니저에서 제공한다. 엔티티 메니저는 DB 커넥션과 밀접한 관계가 있으므로 스레드 간 공유하거나 재사용을 하면 안 된다. 엔티티 메니저는 엔티티 메니저 팩토리를 통해 생성된다. 엔티티 메니저 팩토리 이름 그대로 엔티티 메니저를 만드는 공장이다. 데이터 커넥션 풀도 생성할 정도로 생성 비용이 아주 크다. 즉, 엔티티 메니저 팩토리는 애플리케이션 전체에서 딱 한 번만 생성하고 공유해서 사용해야 한다.
2023.12.11