kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 설계 원칙
  • 결합도
  • 책임
  • 역할
  • 객체지향 프로그래밍
  • 응집도

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

[Spring JPA] CASCADE 는 무엇일까?
JPA

[Spring JPA] CASCADE 는 무엇일까?

2022. 5. 15. 17:15

앞서 영속성 컨텍스트에 대해 정리하고 fetch의 대해 정리 해보았다. CASCADE 란 종속이란 단어인데 DB 쿼리 에서도 보았을 것이다.

JPA에서는 A라는 엔티티에 연관된 엔티티들도 영속성 상태로 만들고 싶을때 사용하는 속성이다.

 

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)

 

CascadeType

 

 

타입에서도 여러가지가 있다. 주로 ALL, PERSIST 을 설정하여 사용한다.

 

주의!

속성을 지정할땐 연관된 엔티티의 소유자가 단 하나일때 만 사용해야한다.

소유자가 여러개이면 한쪽에서 변경할 시 다른 한쪽에서도 변경된 값으로 영향을 받으므로 사용하지 않는 것을 권장한다.

 

고아 객체 관리

말 그대로 풀어서 설명해보면 소유자가 없는 객체 즉, 연관관계가 끊어진 엔티티를 말한다.

연관관계가 끊어진 객체를 어떻게 관리 할 것인지 설정 하는 속성이 있다.

 

@OneToMany(orphanRemoval = true)

 

기본 속성값이 false 이며 true 로 설정하면 연관객체의 생명주기를 연관관계의 주인이 가지게 된다.

연관관계가 끊어지면 delete query 가 동작하게 된다.

 

주의!

이 설정도 소유자가 하나일때 만 사용해야한다.

1 : 1 관계, 1 : N 관계 일때 만 가능하다.

'JPA' 카테고리의 다른 글

[Jpa] Deprecated 된 getById() 대안 getReferenceById()  (0) 2022.08.02
[Jpa] Dirty Checking  (0) 2022.07.19
[Jpa] Projections  (0) 2022.07.18
[Spring JPA] 트랜잭션은 언체크, 체크 예외에 대해 어떻게 커밋과 롤백을 처리할까?  (1) 2022.05.18
[Spring JPA] N + 1의 문제점이 무엇이고 어떻게 해결 해야할까?  (0) 2022.05.15
[Spring JPA] 프록시 객체는 어떻게 동작할까?  (0) 2022.05.12
[Spring JPA] 객체지향의 상속관계 매핑은 어떤 전략을 사용할까?  (0) 2022.05.12
[Spring JPA] 객체의 연관관계는 어떻게 관계를 맺는것이 좋을까?  (0) 2022.05.10
    'JPA' 카테고리의 다른 글
    • [Jpa] Projections
    • [Spring JPA] 트랜잭션은 언체크, 체크 예외에 대해 어떻게 커밋과 롤백을 처리할까?
    • [Spring JPA] N + 1의 문제점이 무엇이고 어떻게 해결 해야할까?
    • [Spring JPA] 프록시 객체는 어떻게 동작할까?
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바