실전 예제 3에서 추가 된 것
- 상품의 종류는 음반, 도서, 영화가 있고 이후 더 확장될 수 있다.
- 모든 데이터는 등록일과 수정일이 필수다.
상품 종류 확장
package jpabook.jpashop.domain;
import javax.persistence.Entity;
@Entity
public class Album extends Item {
private String artist;
private String etc;
..Getter/Setter
}
package jpabook.jpashop.domain;
import javax.persistence.Entity;
@Entity
public class Book extends Item{
private String author;
private String isbn;
..Getter/Setter
}
package jpabook.jpashop.domain;
import javax.persistence.Entity;
@Entity
public class Movie extends Item {
private String director;
private String actor;
..Getter/Setter
}
이 3개의 class를 만든다.
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn
Item class에 이것을 추가해주면 Single Table 형식으로 잘 만들어진다. 형식을 바꾸고 싶으면 InheritanceType을 바꿔주면 된다.
BaseEntity 만들기
package jpabook.jpashop.domain;
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;
@MappedSuperclass
public abstract class BaseEntity {
private String createBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
..Getter/Setter
}
BaseEntity class를 만든 뒤 MappedSuperClass로 모든 class에 상속 시킨다. 그러면 모든 class에서 위 요소들을 사용 할 수 있다.
실행 결과
모든 요소가 들어가 있는 모습을 볼 수 있다.
강의 출처 : https://www.inflearn.com/course/ORM-JPA-Basic
'Spring JPA 공부 > 자바 ORM 표준 JPA 프로그래밍' 카테고리의 다른 글
실전 예제 5 - 연관관계 관계 (0) | 2022.12.28 |
---|---|
JPA -프록시와 연관관계 관리 (0) | 2022.12.28 |
JPA 고급 매핑 (0) | 2022.12.26 |
실전 예제 3 - 다양한 연관관계 매핑 (0) | 2022.12.26 |
JPA 다양한 연관관계 매핑 (0) | 2022.12.26 |