jhs0129
프로그래밍
jhs0129
전체 방문자
오늘
어제
  • 분류 전체보기
    • 자격증
      • SQLD
      • 정보처리기사
    • 프로젝트
      • html csss js - todolist
      • JSP 방명록
      • 졸업작품
    • 공부기록
      • Java
      • Spring
      • Spring Security
      • Algorithm
      • JPA
      • DB
      • Servlet JSP
      • html
      • 기술공유
    • 잡다한 생각

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 스프링
  • spring data jpa
  • oAuth2
  • Spring Security
  • cicd
  • spring boot
  • codedeploy
  • EC2
  • AWS
  • nhn cloud 강의
  • 스프링시큐리티
  • spring framework
  • github
  • Spring Security Login
  • rest docs
  • spring
  • JPA
  • 스프링 프레임워크
  • NHN Cloud
  • 프로젝트

최근 댓글

최근 글

티스토리

반응형
250x250
hELLO · Designed By 정상우.
jhs0129

프로그래밍

공부기록/JPA

JPA 고급매핑1

2022. 1. 20. 15:17
320x100
반응형

상속관계 매핑

객체의 상속구조를 DB의 슈퍼타입 서브타입관계로 매핑을 하는 것이다

  • 조인 전략
  • 단일 테이블 전략
  • 개별 테이블 전략

조인전략

@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn//생략가능

@Inheritance 어노테이션을 이용하여 join전략으로 전략을 선택을 하면 된다

@DiscriminatorColumn 어노테이션은 자식 테이블을 구별을 할 수 있도록 도와주는데 default값은 DTYPE으로 컬럼명이 정해진다

자식 테이블 구분 컬럼 값을 직접 지정을 하고 싶으면 @DiscriminatorValue("값")을 자식 객체에 지정을 해주면 해당 값으로 칼럼 값이 지정이 된다 default로는 객체 명 사용

자식 테이블의 기본 키 칼럼 명을 변경하고 싶으면 @PrimaryKeyJoinColumn("칼럼명")을 사용하면 된다

단일 테이블 전략

@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn//생략시 자동 생성

조인을 사용하지 않고 하나의 테이블에서만 사용이 되기때문에 일반적으로 가장 빠르다

개별 테이블 전략

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

자식 엔티티 마다 테이블을 만든다

@MappedSuperClass

정보를 가지고 있는 클래스에 해당 어노테이션을 적용을 하고 나머지 자식클래스에 상속을 하면 된다 이때 부모 클래스는 추상클래스로 만들어 추가적인 접근을 막도록 해야 한다

@MappedSuperclass
public class BaseEntity {
    private Long id;
}

자식 클래스에서 부모로 부터 상속받은 컬럼명을 수정을 하고 싶으면
@AttributeOverride, @AttributeOverrides(둘 이상 재정의 할때) 를 사용을 하면 된다

@AttributeOverride(name = "id", column= @Column(name = MEMBER_ID))

*상속관계 매핑과 MappedSuperClass의 차이

상속관계 매핑은 부모 자식클래스 모두 DB테이블에 매핑을 시키지만 MappedSuperClass는 자식 클래스만 DB테이블에 매핑을 시키고 부모 클래스는 오직 정보만을 자식 클래스에 제공을 하는 것이다 오로지 정보만을 상속을 시키는 목적으로 사용된다

 

참고

자바 ORM 표준 JPA 프로그래밍 - 기본편_김영한 님 강의

https://www.inflearn.com/course/ORM-JPA-Basic

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

초급자를 위해 준비한 [백엔드, 웹 개발] 강의입니다. JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자

www.inflearn.com

책 - 자바 ORM 표준 JPA 프로그래밍

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788960777330

 

자바 ORM 표준 JPA 프로그래밍 - 교보문고

스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임 | ★ 이 책에서 다루는 내용 ★■ JPA 기초 이론과 핵심 원리■ JPA로 도메인 모델을 설계하는 과정을 예제 중심으로

www.kyobobook.co.kr

 

320x100
반응형

'공부기록 > JPA' 카테고리의 다른 글

JPA-프록시  (0) 2022.01.26
JPA-고급매핑2  (0) 2022.01.20
JPA 연관관계 매핑  (0) 2021.12.29
JPA 엔티티  (0) 2021.12.26
JPA시작  (0) 2021.12.24
    '공부기록/JPA' 카테고리의 다른 글
    • JPA-프록시
    • JPA-고급매핑2
    • JPA 연관관계 매핑
    • JPA 엔티티
    jhs0129
    jhs0129
    공부기록 남기기

    티스토리툴바