자바 ORM 표준 JPA 프로그래밍(인프런)

Ch07. 고급 매핑 - 실전 예제(상속관계 매핑)

webmaster 2021. 12. 14. 10:44
728x90
  • 상품의 종류는 음반, 도서, 영화가 있고 이후 더 확장될 수 있다.
  • 모든 데이터는 등록일과 수정일이 필수다.

도메인 모델

도메인 모델
도메인 모델 상세
테이블 설계

Item Entity(부모)

추상클래스, @Inheritance 전략을 SingleTable로 한다.

  • @Inheritance
    • 전략을 SingleTable 전략을 사용한다고 명시한다.
  • SingleTable 전략을 사용하면 @DiscriminatorColumn이 필수이다.
    • 하위 클래스를 구분하는 컬럼을 명을 지정한다 -> default = DTYPE

자식 Entity

Album Entity - 자식
Book Entity - 자식
Movie Entity - 자식

  • @DiscriminatorValue 어노테이션을 설정하지 않았으므로 기본적으로 DTYPE에 클래스의 이름이 들어간다.

@MappedSuperclass

@MappedSuperclass를 사용하여 생성일, 생성자, 수정일, 수정자를 작성
BaseEntity를 상속받아 사용하면 된다.
실행 결과 - 생성일, 생성자, 수정일, 수정자 들어갔다

  • 공통적으로 사용될 속성을 클래스로 만들어 준다.
728x90