현의 개발 블로그

[프록시와 연관관계 관리] 실전 예제 본문

스프링부트 이론/JPA

[프록시와 연관관계 관리] 실전 예제

hyun2371 2023. 5. 29. 13:59

배운 아래 개념들을 실전 예제에 적용해 보자

프록시

즉시로딩과 지연로딩

영속성 전이 (CASCADE), 고아객체 (OrphanRemoval)

 

 

모든 연관관계를 지연로딩으로 변경할 것이다.

@ManyToOne, @OneToOne은 디폴트가 EAGER이므로 지연로딩으로 변경하자

@ManyToOne(fetch = FetchType.LAZY)

 

영속성 전이를 설정하자

Order -> Delivery에 영속성 전이 옵션을 추가한다.

@OneToOne(fetch =LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "DELIVERY_ID")
private Delivery delivery;

 

Order -> OrderItem에 영속성 전이 옵션을 추가한다.

@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
private List<OrderItem> orderItems = new ArrayList<>();

 

Comments