내일배움캠프 Spring 27일차 TIL

Skadi·2024년 1월 30일
0

스프링 숙련

1. 지연로딩

  • JPA는 연관관계가 설정된 Entity의 정보를 바로 가져올지, 필요할 때 가져올지 정할 수 있습니다.
    - 즉, 가져오는 방법을 정하게되는데 JPA에서는 Fetch Type이라 부릅니다.
    - Fetch Type의 종류에는 2가지가 있는데 하나는 LAZY , 다른 하나는 EAGER 입니다.
    - LAZY 는 지연 로딩 으로 필요한 시점에 정보를 가져옵니다.
    - EAGER 는 즉시 로딩 으로 이름의 뜻처럼 조회할 때 연관된 모든 Entity의 정보를 즉시 가져옵니다.
    - 기본적으로 @OneToMany 애너테이션은 Fetch Type의 default 값이 LAZY 로 지정되어있고 반대로 @ManyToOne 애너테이션은 EAGER 로 되어있습니다

2. 영속성 전이

  • 영속 상태의 Entity에서 수행되는 작업들이 연관된 Entity까지 전파되는 상황을 뜻합니다.
  • Cascade
    - CascadeType.ALL : 영속성 전이를 적용하여 해당 Entity에 모든 영향을 주는 방법
    - CascadeType.PERSIST : 영속성 전이를 적용하여 해당 Entity를 저장할 때 연관된 Entity까지 자동으로 저장
    - CascadeType.REMOVE : 영속성 전이를 적용하여 해당 Entity를 삭제할 때 연관된 Entity의 관계를 삭제
    - orphanRemoval = true : orphanRemoval 옵션도 REMOVE 옵션과 마찬가지로 해당 Entity 즉, 상위 Entity 객체를 삭제하면 연관된 하위 Entity들이 자동으로 삭제됩니다.

0개의 댓글