실전 예제 2에서 했던 내용에 배송과 카테고리를 추가하고 다양한 연관관계 매핑을 추가한다.
다대다는 사용하지 않지만 예제이므로 사용한다고 한다.
Delivery
package jpabook.jpashop.domain;
import javax.persistence.*;
@Entity
public class Delivery {
@Id @GeneratedValue
private int Id;
@OneToOne(mappedBy = "delivery")
private Order order;
private String city;
private String zipCode;
@Enumerated(EnumType.STRING)
private DeliveryStatus status;
}
///// Order에 추가
@OneToOne
@JoinColumn(name = "DELIVERY_ID")
private Delivery delivery;
order와 delivery가 1대1 관계이다. 그러므로 Order에 delivery과 외래키이므로 주인은 Order 부분이다.
Cateogry
package jpabook.jpashop.domain;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Entity
public class Category {
@Id
@GeneratedValue
private Long Id;
private String name;
//연관 테이블을 만들어 준다.
@ManyToMany
@JoinTable(name = "CATEGORY_ITEM",
joinColumns = @JoinColumn(name = "CATEGORY_ID"),
inverseJoinColumns = @JoinColumn(name = "ITEM_ID")
)
private List<Item> items = new ArrayList<>();
@ManyToOne
@JoinColumn(name = "PARENT_ID")
private Category parent;
@OneToMany(mappedBy = "parent")
private List<Category> child = new ArrayList<>();
}
강의 출처 : https://www.inflearn.com/course/ORM-JPA-Basic
'Spring JPA 공부 > 자바 ORM 표준 JPA 프로그래밍' 카테고리의 다른 글
실전 예제 4 - 상속관계 매핑 (0) | 2022.12.27 |
---|---|
JPA 고급 매핑 (0) | 2022.12.26 |
JPA 다양한 연관관계 매핑 (0) | 2022.12.26 |
JPA 실전 예제2 - 연관관계 매핑 시작 (0) | 2022.12.23 |
JPA 양방향 연관관계 (0) | 2022.12.23 |