이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[JPA] 영속성의 전이와 고아 객체

  • 2022.12.24 22:26
  • Spring/JPA
반응형

 

 

 

부모 엔티티를 영속 상태로 만들때 자식 엔티티도 함께 영속 상태로 만드는 등 특정 엔티티를 영속 상태로 만들때 연관된 엔티티도 함께 영속 상태로 만드는 작업을 영속성의 전이라고 한다.

 

 

@OneToMany 애너테이션에 cascade 속성을 CascadeType.ALL으로 설정하면 영속성의 전이를 사용할 수 있다.

 

연관관계의 매핑과는 아무런 상관 없고 그냥 엔티티를 영속화할 때 관련된 엔티티를 함께 영속화할 수 있어 좀 더 편하게 개발할 수 있다는 의미를 가진다.

 

 

 

 

해당 엔티티가 단일 엔티티에 종속적인 경우 사용하면 좋지만, 엔티티가 복잡하게 엮여있는 경우 의도하지 않은 결과가 발생할 수 있으니 조심해서 사용하자.

 

 

 

 


 

 

 

 

영속성의 전이와 비슷한 개념으로 고아 객체 개념이 있다.

부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제하는 작업으로, 참조가 제거된 엔티티는 다른 곳에서도 참조하지 않는 고아 객체로 판단하고 삭제하는 기능이다.

 

 

 

@OneToMany 애너테이션에 orphanRemoval 속성을 조작해서 설정하고, 반드시 참조하는 곳이 하나일 경우만 사용해야 한다.

 

두 가지 개념을 적절히 사용해 자식의 생명주기를 부모가 관리하도록 설계할 수 있다. (도메인 주도 설계 시 유용하게 사용된다)

반응형
저작자표시 (새창열림)

'Spring > JPA' 카테고리의 다른 글

[JPA] JPQL (1)  (0) 2022.12.27
[JPA] 값 타입  (0) 2022.12.26
[JPA] 프록시와 연관관계  (0) 2022.12.24
[JPA] 상속관계 매핑  (0) 2022.12.23
[JPA] 다양한 연관관계 매핑  (0) 2022.12.22

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [JPA] JPQL (1)

    [JPA] JPQL (1)

    2022.12.27
  • [JPA] 값 타입

    [JPA] 값 타입

    2022.12.26
  • [JPA] 프록시와 연관관계

    [JPA] 프록시와 연관관계

    2022.12.24
  • [JPA] 상속관계 매핑

    [JPA] 상속관계 매핑

    2022.12.23
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (679)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (10)
    • 💬 기록 (8)
    • 📚 공부 (6)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바