TIL_210916
1. Facts(사실, 객관)
- 패스트캠퍼스 AWS/DOCKER 10일차 강의
- 영속성 전이(CASCADE)와 고아객체 강의 듣기 및 정리
2. Feelings(느낌, 주관)
- 영속성 전이는 RDBMS에서 처음 DB를 생성할 때 제약조건으로 많이 생성합니다. 이 작업을 JPA에서는 어떻게 할 수 있는지 정할 수 있습니다. JPA에서 해당 설정을 가지고 있는 것이 너무 신기하면서 구현하기 위한 개발자들의 노력이 새삼 대단함을 느꼈습니다. 그러면서 JPA만 알 것이 아니라, RDBMS에서 어떻게 사용해야하는지도 꼭 알아두어야 어느상황에서도 당황하지 않고 잘 이용할 수 있겠다는 생각이 들었습니다.
3. Findings (배운 점)
영속성 전이 CASCADE를 JPA에 적용하기 위해서 cascade, orphanRemoval 특성을 사용한다. cascade는 여러가지 종류가 있으며 ALL은 모두 적용하는 것이다. @OneToMany에 사용해야 하며, 보통 부모 엔티티에서 자손 엔티티를 칼럼으로 가질 때, 자손 엔티티 칼럼에 cascade와 orphanRemoval을 붙여준다.
cascade는 부모가 삭제될 때 같이 삭제되므로, detach로 서로 연관관계를 분리한다고해서 자손이 삭제되지 않는다. 하지만, orphanRemoval = true는 부모와 자손 사이가 삭제가 아니라 단순히 detach로 끊어지기만 해도 자손이 삭제된다. 자손의 영속성 컨텍스트 사이클이 전적으로 부모에게 의존되므로 자손 엔티티를 따로 저장하기 않아도 부모엔티티가 관리할 수 있다.
- 영속성 전이(CASCADE)와 고아객체
https://escapefromcoding.tistory.com/406
4. Affirmation (자기 선언)
나는, 단순 JPA 이용뿐만 아니라 RDBMS에서도 구현 방법을 함께 공부하는 사람이다