티스토리 뷰
1. 글로벌 페치 전략 설정
static import 하면 더 깔끔하게 쓸 수 있음
클래스에다가
import static javax.persistence.FetchType.*;
- => 정적 임포트 추가
Category
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "PARENT_ID")
private Category parent;
@ManyToOne은 기본이 LAZY 이기 때문에 굳이 안 써줘도 된다.
Delivery
@OneToOne(mappedBy = "delivery", fetch = LAZY)
private Order order;
Order
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "MEMBER_ID")
private Member member;
@OneToOne(fetch = LAZY)
@JoinColumn(name = "DELIVERY_ID")
private Delivery delivery;
OrderItem
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "ORDER_ID")
private Order order;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "ITEM_ID")
private Item item;
영속성 전이 설정
정적 임포트문
import static javax.persistence.CascadeType.ALL; 추가
Order
@OneToOne(fetch = LAZY, cascade = ALL)
@JoinColumn(name = "DELIVERY_ID")
private Delivery delivery;
@OneToMany(mappedBy = "order", cascade = ALL)
private List<OrderItem> orderItems = new ArrayList<>();
이렇게 해주면
Order를 생성할 때 Delivery 넣고 OrderItem 넣고
persist()를 order 하나만 해주면 자동으로 같이 저장된다.
728x90
반응형
'[개발] - Spring > JPA 공부' 카테고리의 다른 글
임베디드 타입(복합 값 타입) (0) | 2023.08.26 |
---|---|
기본 값 타입 (0) | 2023.08.26 |
고아 객체, 그리고 생명 주기 (0) | 2023.08.25 |
영속성 전이(CASCADE) (0) | 2023.08.25 |
지연 로딩 활용 (0) | 2023.08.24 |
Comments