Spring/JPA 3

자바 ORM 표준 JPA 프로그래밍 - 9장. 값 타입

기본값 타입 JPA는 최상위로 보면 엔티티 타입, 값 타입 두 개로 분류한다. - 엔티티 타입 @Entity로 정의 데이터가 변해도 식별자로 지속해서 추적 가능하다. 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능하다 - 값 타입 int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적이 불가능함 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체된다 값 타입은 또 다음과 같이 분류된다. 1) 기본값 타입 : 자바 기본타입(int, double), 래퍼 클래스(Integer, Long), String 기본값 타입은 생명주기를 엔티티에 의존한다. 예) 회원을 삭제하면 이름, 나이 필드도 함께 삭제된다는 ..

Spring/JPA 2022.10.25

자바 ORM 표준 JPA 프로그래밍 - 7장. 고급 매핑

상속관계 매핑 관계형 DB에는 상속관계라는게 없다. 대신 객체 상속과 유사한 슈퍼타입, 서브타입 모델링 기법이 있다. 여기서 말하는 상속관계 매핑이란 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 상속관계 매핑(슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법) 에는 세 가지 방법이 있다. - 각각 테이블로 변환 -> 조인 전략 - 통합 테이블로 변환 -> 단일 테이블 전략 - 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 위 세 가지 방법을 위해 사용하는 어노테이션들로 다음이 있다. @Inheritance(strategy = InheritanceType.XXX) - JOINED : 조인 전략 - SINGLE_TABLE : 단일 테이블 전략 - TABLE_P..

Spring/JPA 2022.10.24

자바 ORM 표준 JPA 프로그래밍 - 6장. 다양한 연관관계 매핑

연관관계 매핑시 고려사항 3가지 - 다중성 : 다대일, 일대다, 일대일, 다대다 중 무엇으로 매핑할지 - 단방향, 양방향 : 테이블은 외래 키 하나로 양쪽 조인이 가능하다. 반면 객체는 참조용 필드가 있는 쪽으로만 참조가 가능하다. 한쪽만 참조하면 단방향, 양쪽이 서로 참조하면 양방향인 셈이다. - 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺는다. 반면 객체는 양쪽이 서로 참조하려면 참조가 2군데 있어야 하고 둘 중 테이블의 외래 키를 관리할 곳을 지정해야 한다. 이 외래키를 관리하는 곳이 연관관계의 주인이다. (주인의 반대편은 외래 키에 영향을 주지 않고 단순 조회만 가능하다.) 다대일 [N:1] 1) 다대일 단방향 가장 많이 사용하는 연관관계이다. 당연한거지만 다대일의 반대는 ..

Spring/JPA 2022.10.24