Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

우주에서 글을 적어본다

[Spring boot JPA] Fetch 전략과 orphanRemoval 본문

스프링

[Spring boot JPA] Fetch 전략과 orphanRemoval

우주로 날아간 사람 2023. 3. 15. 21:06

현재 진행 중인 프로젝트 구현을 완료하였다. 
이번에 처음으로 JPA를 이용하여 개발을 진행해서 궁금했던 것들을 기록&복습용으로 블로그에 정리해 나가도록 하겠다.

테이블을 조인할 때 fetch를 사용하는데
우선 fetch의 의미는 "가지고 오다(to go to another place to get something or someone)"라는 의미다.
즉 테이블을 조회할 때 사용한다.

JPA에서는 테이블을 언제 조회할 것인가에 대한 시점을 2가지를 지원한다.
그 내용을 간략히 아래에 적어 보았다.

즉시 로딩
엔티티를 조회할 때 연관된 엔티티도 함께 조회함
예) @ManyToOne(fetch = FetchType.EAGER)

→ 즉시 로딩 최적화를 위해 가능하면 조인 쿼리를 사용

 

지연 로딩
연관된 엔티티를 실제 사용할 때 조회함
예) @ManyToOne(fetch = FetchType.LAZY)

 

그 다음으로 orphanRemoval 옵션을 제공한다.

연관관계가 사라진, 즉 null인 객체를 삭제한다고 한다.

- @OneToOne, @OneToMany에서만 사용이 가능하다.
- 부모 객체가 삭제되면 자식 객체의 데이터까지도 같이 삭제된다.


참고 블로그 https://choiblack.tistory.com/48

'스프링' 카테고리의 다른 글

[Spring boot JPA] @Query 수정, 삭제  (0) 2023.03.15
[Spring boot JPA] 엔티티의 양방향 관계  (0) 2023.02.19