<aside> 💡 목차

</aside>

개요


데이터베이스 시스템에서는 다수의 테이블 간 복잡한 의존성이 존재하며, 이러한 의존성은 데이터 삭제 시 정확한 순서를 요구합니다. 이 문서에서는 Spring Framework와 JPA를 활용하여 데이터베이스의 의존성을 자동으로 관리하고, 일괄적으로 데이터를 삭제하는 방법을 설명하고자합니다.

문제 정의


프로젝트의 데이터베이스에서 여러 엔티티 간에 복잡한 참조 관계가 존재할 경우, 단순한 순차적 삭제 작업(deleteAll())은 외래 키 제약조건으로 인해 실패한 적이 있었습니다.

예를 들어, memberInfoRepository, memberRepository, memberImageRepository, boardRepository

와 같이 서로 참조하는 테이블들의 데이터를 삭제할 때, 참조 순서에 맞지 않으면 데이터베이스 오류가 발생했습니다.

그렇기에 DB와 연동된 테스트시 각 엔티티간에 참조관계를 살펴보고 이에 맞게 삭제하는 번거로운 작업이 필요했습니다.

해결 방안: 참조 해제 후 일괄 삭제


이를 해결하기 위해서 참조를 일시적으로 해제하고, 모든 테이블의 데이터를 안전하게 일괄 삭제하는 방법을 찾았습니다.