1.Album, Book, Movie 클래스 세팅

 

실습

 

설명

-Item Package로 옮긴 Album,Book,MovieItem클래스로부터 extends를 사용해

 상속받게 한다.

-@Entiyty @Getter @Setter 세팅

 

 

2.ItemAlbum, Book, Movie클래스 상속관계매핑 세팅

실습

a. 싱글테이블전략사용

-상속관계전략을 지정해주어야 한다.(중요!!)

-전략을 부분 클래스에 잡아주어야 하고, 싱글테이블전략을 사용한다.

 

*여기에서는 싱글테이블 전략을 사용

@Inheritance(strategy = InheritanceType.SINGLE_TABLE) 설정을 한다.

 

*@inheritance 타입에 전략 종류 3가지

a. (strategy = inheritanceType.Joined) - 가장 정교화된 스타일

b. (strategy = InheritanceType.TABLE_PER_CLASS)

- 상속받는 클래스를 각각 테이블화 하는 전략

c. (strategy = InheritanceType.SINGLE_TABLE) - 한테이블에 전부 넣는전략

 

#InheritanceType strategy 자세히 보는 방법

(strategy = InheritanceType)에서 Inheritance 우클릭해서

Find Usage->EnumInheritance Type 클릭

 

 

b.@DiscriminatorColumn(name= "dtype")

실습

설명

-ITEM: 앨범, 도서, 화 타입을 통합해서 하나의 테이블로 만들었다.

 dtype 컬럼으로 타입을 구분한다. 컬럼사용을 통해 저장 되어 있는 자식테이블을 구분할 수 있다.

-기본값은 dtype이다.

 

c.@DiscriminatorValue("B") -> Album, Music에도 동일하게 "A", "M"로 세팅

실습

설명

-싱글테이블일 때 book컬럼을 저장할 때 구분할 수 있는 무언가가 DB입장에서 필요하다.

 이 때 넣는 값이다.

-이때 book클래스에서 클래스에 @DiscriminatorValue("B") 로 세팅해준다.

 B값으로 안하고 기본값으로 두면 Book으로 값이 들어간다.

 

 

2. OrderItemItem 연관관계 설정

실습

 

설명

OrderItem ->private Item item 어노테이션 세팅

-@ManyToOne : 주문상품과 상품의 관계, 다대 1관계를 설정해주는 어노테이션

-@JoinColumn(name = "item_id")

*@JoinColumn 어노테이션은 외래 키를 매핑 할 때 사용

*name 속성에는 매핑 할 외래키(연관관계주인) 이름지정

-item_id = foregien key(외래키)

-상품테이블에서 상품에 대한 정보를 매핑

 

-다대일 단방향 관계다

+ Recent posts