JPA cascade = CascadeType.REMOVE와 @OnDelete(action = OnDeleteAction.CASCADE)의 차이
게시판 API 만들기 시리즈를 연재하다가, 연관 관계에 있는 엔티티를 연쇄적으로 제거하기 위해 사용되는 위 두 가지 방식의 차이점이 궁금해졌고, 이에 대해 간단히 정리해보았습니다. * 주관적인 내용도 많이 포함되어있습니다. 가장 큰 차이로는, JPA에 의해 처리되느냐, DDL에 의해 DB단에서 처리되느냐입니다. 전자의 방식을 취할 경우, JPA에 의해 외래 키를 찾아가며 참조하는 레코드를 제거해주게 됩니다. 따라서, JPA 상에서는 참조하고 있는 레코드의 개수만큼 delete 쿼리가 생성됩니다. 후자의 방식을 취할 경우, 데이터베이스 자체에서 on delete cascade 제약조건이 걸리게 됩니다. 이를 통해 참조하는 레코드가 모두 제거되는 것입니다. 따라서, JPA 상에서는 한 개의 delete 쿼리..
https://kukekyakya.tistory.com/546