JPA 시작
JPA 시작
매핑된 엔티티는 EntityManager를 통해 어떻게 사용될까? EntityManager를 자세히 알아보자.
JPA를 사용하는 데 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 일이기 때문에 매핑 어노테이션 숙지는 필수이다. 이번 장에선 네 가지 대표 매핑 방식 중 세가지에 대해 정리하자.
객체의 참조와 테이블의 외래 키를 매핑하자
다중성과 단방향, 양방향을 고려한 가능한 모든 연관관계를 하나씩 알아보자.
상속 관계 매핑 RDBMS에선 상속이 없는 대신 슈퍼타입-서브타입 관계 Super-Type Sub-Type Relationship가 있다. ORM의 상속 관계 매핑은 이를 객체의 상속 구조와 매핑하는 것이다. 다음 세 가지 방법이 있다. 조인 전략 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모의 기본 키를 받아 외래키와 매핑해 사용한다. 조회할 ...
프록시 엔티티는 연관된 엔티티를 탐색하지만, 객체가 DB에 저장되므로, 마음껏 탐색하는 게 DB에 부하가 갈 수도 있다. JPA는 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공하는데, 이를 지연 로딩이라고 한다. 지연 로딩을 사용하려면 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데, 이것을 프록시 ...
JPA 데이터 타입을 크게 두 가지로 분류하면 @Entity로 정의하는 엔티티 타입과 Integer, int, String 처럼 단순 자바 기본 타입으로 정의하는 값 타입으로 나눌 수 있다. 식별자를 통해 추적하는 엔티티 타입과 달리, 값 타입은 속성으로만 구성돼 있다는 특징이 있다. 값 타입은 크게 3가지로 나뉜다. Basic Value Type 앞서...