컬렉션과 부가 기능
- JPA가 지원하는 컬렉션의 종류와 중요한 부가 기능에 대해서 알아봅니다.
컬렉션
- JPA는 자바에서 기본적으로 제공하는 컬렉션을 지원
- Collection, List, Set, Map
@OneToMany
,@ManyToMany
@ElementCollection
-
맵은
@MapKey*
어노테이션으로 매필할 수 있는데 여기서는 생략함 -
JPA와 컬렉션 *
- 하이버네이트는 컬렉션을 효율적으로 관리하기 위해 엔티티를 영속 상태로 만들 때 원본 컬렉션을 감싸고 있는 내장 컬렉션을 생성
- 이러한 특징 때문에 컬렉션을 사용할때 다음처럼 즉시 초기화해서 사용하는 것을 권장
Collection<Member> members = new ArrayList<Member>();
- Set은 엔티티를 추가할때 중복된 엔티티가 존재하는지 검사
- 따라서 엔티티 추가시 지연 로딩된 컬렉션을 초기화
@OrderColumn
@OrderBy
@Converter
리스너
- 이벤트의 종류
- PreLoad
- PrePersist
- PreUpdate
- PreRemove
- PostPersist
- PostUpdate
- PostRemove
- 여러 리스너를 등록했을때 순서
- 기본 리스너
- 부모 클래스 리스너
- 리스너
- 엔티티
엔티티 그래프
- 엔티티 그래프는 엔티티 조회시점에 연관된 엔티티들을 함께 조회하는 기능
-
엔티티 그래프는 정적으로 정의하는 Named 엔티티 그래프와 동적으로 정의하는 엔티티 그래프가 존재
- Named 엔티티 그래프 *
- 동적 엔티티 그래프 *