BE전문가 프로젝트

쇼핑몰 만들기 3 - 상속관계 매핑 본문

JPA

쇼핑몰 만들기 3 - 상속관계 매핑

원호보고서 2022. 10. 30. 14:19

요구사항

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

 

상속관계 만들기

@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