DevBoi

JPA orphanRemoval 이란? 본문

Develop/[JPA]

JPA orphanRemoval 이란?

HiSmith 2023. 1. 9. 15:42
반응형

onetoone 관계의 두 객체가있었다.

둘은 조인을 하고있었고

연결된 다른 객체를 삭제하려고 delete 쿼리를 날렸지만 되지않았다.

 

 

당연히 안된다.

 

이건 JPA를 떠나서 DB 제약조건 때문에 안되는것이다.

바로, 연결된 다른 객체에서 값을 잃어버리기 때문이다.

 

그래서 찾아본 결과

 

JPA orphanRemoveal을 제공해준다.

이게 무엇이냐?

 

@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)

@JoinColumn(name="post_comment_id")

private PostComment postComment;

 

 

 

이런식으로 고아 객체 트루로 주게되면

 

post에서 하위값을 null로 set하고 저장하면

하위 객체에 대한 값의 연결을 끊고 삭제까지 해준다.

 

요런식으로 Postcomment, 댓글을 삭제하는것이다.

실제로 post객체만 사용했지만.... 삭제되는건 댓글이 삭제된다.

 

아주 유용하다

}

 

 

반응형

'Develop > [JPA]' 카테고리의 다른 글

[JPA] QueryDsl 사용하기  (0) 2023.05.02
[QueryDSL] QueryDSL 세팅  (0) 2023.05.01
[Jpa] delete 관련 잘 안됨  (0) 2023.01.09
[JPA] 생성시간, 수정시간 자동화 하기  (0) 2022.12.16
[JPA] 기본적인 구조  (0) 2022.12.07