🔙뒤로가기
글로벌 페치 전략 설정
- 모든 연관관계를 지연 로딩으로
@ManyToOne, @OneToOne으로 설정된 모든 연관관계는 기본 전략이 EAGER이므로 LAZY로 수정해줘야 한다.
영속성 전이 설정
- Order → Delivery 관계에서
cascade = *ALL* 설정
- Order → OrderItem 관계에서
cascade = *ALL* 설정
Delivery Entity
@Entity
public class Delivery {
//생략
@OneToOne(mappedBy = "delivery", fetch = LAZY)
private Order order;
Category Entity
@Entity
public class Category {
// 생략
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "PARENT_ID")
private Category parent;
// 생략
}
Order Entity
@Entity
@Table(name = "ORDERS")
public class Order {
// 생략
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "MEMBER_ID")
private Member member;
@OneToOne(fetch = LAZY, cascade = ALL)
@JoinColumn(name = "DELIVERY_ID")
private Delivery delivery;
@OneToMany(mappedBy = "order", cascade = ALL)
private List<OrderItem> orderItems = new ArrayList<>();
// 생략
OrderItem Entity
@Entity
public class OrderItem {
// 생략
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "ORDER_ID")
private Order order;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "ITEM_ID")
private Item item;
// 생략