BE전문가 프로젝트
쇼핑몰 만들기 3 - 상속관계 매핑 본문
요구사항
- 상품의 종류는 음반, 도서, 영화가 있고 이후 더 확장될 수 있다.
- 모든 데이터는 등록일과 수정일이 필수다.
상속관계 만들기
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn
public abstract class Item {
@Id
@GeneratedValue
@Column(name="ITEM_ID")
private long id;
private String name;
private int price;
private int stockQuantity;
@ManyToMany(mappedBy = "items")
private List<Category> categories = new ArrayList<>();
}
Item 클래스만 단독으로 사용할 일이 없기 때문에 추상 클래스로 만들어준다.
@Entity
public class Movie extends Item{
private String director;
private String actor;
}
@Entity
public class Album extends Item {
private String artist;
private String etc;
}
@Entity
public class Book extends Item{
private String author;
private String isbn;
}
@MappedSuperclass
@MappedSuperclass
public abstract class BaseEntity {
private String createdBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}
@Entity
public class Member extends BaseEntity{
@Id
@GeneratedValue
@Column(name="MEMBER_ID")
private long id;
private String name;
private String city;
private String street;
private String zipcode;
@OneToMany(mappedBy = "member")
private List<Order> orders = new ArrayList<>();
'JPA' 카테고리의 다른 글
즉시 로딩과 지연 로딩 (0) | 2022.10.31 |
---|---|
Proxy(프록시) (0) | 2022.10.30 |
@MappedSuperclass (0) | 2022.10.30 |
상속관계 매핑 (0) | 2022.10.29 |
연관관계 Annotation 정리 (0) | 2022.10.27 |
Comments