- 객체는 객체 그래프로 연관된 객체들을 탐색한다.
그런데 객체가 데이터베이스에 저장되어 있으므로 연관된 객체를 마음껏 탐색 하기는 어렵습니다.
JPA 구현체들은 이 문제를 해결 하기 위해서 프록시라는 기술을 사용합니다.
- 프록시를 사용하면 연관된 객체를 처음부터 조회하는 것이 아니라 실제 사용하는 시점에 데이터베이스에 조회 할 수 있다.
하지만 자주 사용되는 객체들은 조인으로 함께 조회하는 것이 효과적이다.
- 위 방식을 지연로딩 또는 즉시로딩이라 하며, JPA 는 둘 모두 지원한다.
- 지연로딩
- 실제 엔티티가 사용될 때까지 데이터베이스 조회를 지연하는 방법
- 즉시로딩
- 실제 엔티티와 관련된 객체가 조회 될때 조인을 이용해서 함께 조회하는 방법
- 영속성 전이와 고아객체
- JPA 는 연관된 객체를 함께 저장하거나 함께 삭제 할 수 있는 영속성 전이와 고아 객체 제거라는 편리한 기능을 제공한다.
프록시
즉시로딩과 지연로딩
영속성 전이 : CASCADE
고아 객체
영속성 전이 + 고아 객체, 생명주기