내일배움캠프 62일차 TIL - JPA(CascadeType, OrphanRemoval)

2024. 7. 16. 05:03·⛺스파르타코딩클럽

2024.07.15

🔥오늘의 공부🔥

    ●  1. CascadeType

    ●  2. orphanRemoval

 

Entity간 관계를 정의할 때 사용될 수 있는 설정

 

1. CascadeType ( 영속성 전이 )

Entity 클래스 중 @OneToMany인 1에 해당하는 부모클래스에게 줄 수 있는 옵션으로, 해당 옵션은 연관 관계가 맺어져 있는 자식 엔티티에 부모 엔티티의 영속성 상태를 전이를 시켜주는 옵션이다. 해당 옵션을 사용하면, 아래 해당 이미지에서는 REMOVE 옵션을 사용하고 있지만, 저장, 병합, ALL 등 다양한 옵션이 있지만 여기서는 REMOVE만을 다루겠다.

아래 옵션을 사용하게 되면 부모 엔티티가 삭제 될 때, 자식 엔티티도 같이 삭제를 도와준다. 즉, 영속성을 전이 시켜준다.

 

2. orphanRemoval ( 고아 Entity 삭제 )

부모 엔티티와 연관된 자식 엔티티가 더 이상 부모엔티티와의 연관 관계가 없는 경우 자식 엔티티를 자동으로 삭제할지 말지 지정해주는 연관관계 설정이다. 해당 설정은 OneToMany 또는 OneToOne 관계에서 사용을 하게되며, 해당 설정의 디폴트 값은 false이다.

 

3. 두 설정의 특징

둘의 특징으로는 모두 Many에 설정을 해주기 때문에 Many엔티티에서 One엔티티로의 관계에서만 작동을 한다.

즉, 부모 엔티티의 변화 및 연관관계를 끊어 주는 방향 또한 Many -> One 이어야 동작을 한다는 의미이다.

 

회고

Entity 연관 관계의 설정에 대해서 알아보았는데, 생각보다 어려운 개념이라 JPA 처음에 배울 때는 이해가 가지 않았던 내용이었다. JPA를 쓰다보니 익숙해져 다시 보게되었는데 지금은 이해를 할 수 있게 되었다. 성장을 했다는 증거이다!!!

'⛺스파르타코딩클럽' 카테고리의 다른 글

EduWithMe-Project  (0) 2024.09.03
내일배움캠프 66일차 TIL - 최종 프로젝트( D-2 )  (1) 2024.07.20
내일배움캠프 61일차 TIL - 쿼리 최적화  (1) 2024.07.13
내일배움캠프 60일차 TIL - Security 예외처리  (0) 2024.07.13
내일배움캠프 59일차 TIL - 심화 프로젝트 설계  (0) 2024.07.10
'⛺스파르타코딩클럽' 카테고리의 다른 글
  • EduWithMe-Project
  • 내일배움캠프 66일차 TIL - 최종 프로젝트( D-2 )
  • 내일배움캠프 61일차 TIL - 쿼리 최적화
  • 내일배움캠프 60일차 TIL - Security 예외처리
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (139) N
      • 🎓방송통신대학교 (24) N
        • 🖥️컴퓨터과학과 (1)
        • 🌍유비쿼터스 컴퓨팅 (9) N
        • ⚙️컴퓨터의 이해 (11)
        • 🏛️세계의정치와경제 (3)
      • 📚Computer Science (0)
      • 🛠️Backend (2)
      • ☕Java (0)
        • 📝Java Programming (9)
        • 🧩Java Design Pattern (1)
      • 🌳Spring (9)
        • 🌱Spring Framework (6)
        • 🌱Spring Security (1)
      • ⚡Python (13)
      • 🛢️Database (0)
      • 🌿GitHub (1)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • Algorithm Problem Solving (2)
      • Data Structure (1)
      • JavaScript (1)
      • ⛺스파르타코딩클럽 (65)
      • 잡담 (1)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    유비쿼터스 컴퓨팅
    클라우드
    세계화
    Python
    메모리
    컴파일러
    방송통신대학교
    Spring Framework
    Java
    클래스
    방송대
    함수
    컴퓨터의 이해
    스프링
    파이썬
    유비쿼터스
    유비쿼터스 컴퓨팅개론
    자바
    방통대
    spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
내일배움캠프 62일차 TIL - JPA(CascadeType, OrphanRemoval)
상단으로

티스토리툴바