[7장] 고급 매핑

책 스터디 정리/JPA ORM 스터디 2023. 5. 9. 08:20

7-1. 상속 관계 매핑 관계형 DB에는 객체지향 언어의 "상속" 이라는 개념 X 슈퍼타입/서브타입 관계가 객체 상속 개념과 유사 각각의 테이블로 변환 각각을 모두 테이블로 만들고, 조회시 JOIN 사용 JPA에서 조인 전략이라 부름 통합 테이블로 변환 테이블을 하나만 사용하여 통합 JPA에서 단일 테이블 전략이라 부름 서브타입 테이블로 변환 서브 타입마다 하나의 테이블을 만듬 JPA에서 구현 클래스마다 테이블 전략이라 부름 조인 전략 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본키를 받아서 기본키 + 외래키로 사용하는 전략 조회시 JOIN을 자주 사용 객체는 타입으로 구분 가능 / 테이블은 타입의 개념이 X → 타입을 구분하는 칼럼 추가 필요 테이블 정규화 / 저장공간 효율성의 ..

Article Thumbnail
[6장] 다양한 연관관계 매핑

책 스터디 정리/JPA ORM 스터디 2023. 5. 2. 22:42

6-1. 다대일 다대일 관계의 반대는 항상 일대다 관계 / 일대다 관계의 반대는 항상 다대일 관계 다대일 단방향 [N:1] JoinColumn 어노테이션으로 N쪽의 테이블의 필드를 외래키와 매핑해서 관리 다대일 양방향 [N:1, 1:N] 외래키가 있는 쪽이 연관관계의 주인 항상 N쪽에 외래키가 존재 JPA는 외래 키 관리시 연관관계의 주인만 사용 주인이 아닌 쪽은 조회를 위한 JPQL/객체 그래프 탐색시 사용 항상 서로를 참조 연관관계 편의 메소드를 작성하는 것이 좋음 6-2. 일대다 일대다: 다대일 관계의 반대, 엔티티 하나 이상 참조 가능 → Collection, List, Set, Map 중 하나 사용 필요 일대다 단방향[1:N] 반대쪽 테이블에 있는 외래 키를 관리 외래키는 항상 N쪽의 테이블에 ..

Article Thumbnail
[5장] 연관관계 매핑 기초

책 스터디 정리/JPA ORM 스터디 2023. 4. 25. 08:20

1.단방향 연관관계 다대일(N:1) 단방향 연관관계 회원이 하나의 팀에만 소속 가능 회원과 팀은 다대일 관계 객체 연관관계 기준 회원은 Member.team 필드로 팀 객체와 연관관계 회원은 Member.team 필드로 팀 조회 가능/ 팀은 회원 조회 불가 테이블 연관관계 기준 회원 테이블은 team_id 외래키로 팀 테이블과 연관관계 회원 테이블/팀 테이블은 양방향 관계 team_id 외래키로 회원 JOIN 팀/팀 JOIN 회원 모두 가능 객체 연관관계 vs 테이블 연관관계 참조를 통한 객체 연관: 언제나 단방향 객체 간 연관관계를 양방향으로 만드려면 반대쪽에도 필드 추가 필요 서로 다른 단방향 연관 관계 2개로 처리 / 양방향 연관 관계 X 테이블은 외래키 하나로 양방향 JOIN 가능 객체는 참조(주..

Article Thumbnail
[4장] 엔티티 매핑

책 스터디 정리/JPA ORM 스터디 2023. 4. 18. 22:50

JPA 대표 어노테이션 객체와 테이블 매핑: @Entity, @Table 기본 키 매핑: @Id 필드와 컬럼 매핑: @Column 연관 관계 매핑: @ManyToOne, @JoinColumn 1. @Entity 엔티티: Entity 어노테이션이 붙은 클래스 / JPA에서 관리 name JPA에서 사용할 엔티티 이름 지정 기본값 : 클래스명 기본 생성자 필수 final/inner 클래스, enum, interface에는 사용 불가 저장할 필드에 final 사용불가 2. @Table 엔티티와 매핑할 테이블을 지정 name 매핑할 테이블 이름 지정 uniqueConstraints(DDL) DDL 생성시 유니크 제약 조건 생성 2개 이상의 복합 유니크 제약도 가능 Schema 자동 생성으로 DDL 만들 때만 사..

Article Thumbnail