본문 바로가기
백엔드/SpringBoot

[JPA] 영속성 전이 casecade 속성

by 1005ptr 2020. 12. 26.
반응형

https://stackoverflow.com/questions/13027214/what-is-the-meaning-of-the-cascadetype-all-for-a-manytoone-jpa-association

 

What is the meaning of the CascadeType.ALL for a @ManyToOne JPA association

I think I misunderstood the meaning of cascading in the context of a @ManyToOne relationship. The case: public class User { @OneToMany(fetch = FetchType.EAGER) protected Set

 

stackoverflow.com

cascade는 관계에 추가로 지정하는 속성인데

RDB의 CASCADE, RESTRICT 랑은 비슷한데 좀 다르다.

 

팀과 멤버 테이블이 있다고 할때

 

Member - @ManyToOne Team

Team - @OneToMany List<Member>

 

@ManyToOne(cascade=CascadeType.ALL)

 - 멤버가 삭제되면 팀도 삭제된다.

@OneToMany(cascade=CascadeType.ALL)

 - 팀이 삭제되면 멤버도 삭제된다.

 - 팀을 추가할때 멤버도 추가한다.

 

@OneToMany는 말이 되지만

@ManyToOne에서 cascade를 쓰는건 말이 안된다. 팀을 잃어버린 멤버들이 발생(고아 객체)

@OneToOne에서도 상호 관계를 생각해서 알맞은 위치에 써야되겠다.

반응형

댓글