<aside> 💡 목차
</aside>
데이터베이스 시스템에서는 다수의 테이블 간 복잡한 의존성이 존재하며, 이러한 의존성은 데이터 삭제 시 정확한 순서를 요구합니다. 이 문서에서는 Spring Framework와 JPA를 활용하여 데이터베이스의 의존성을 자동으로 관리하고, 일괄적으로 데이터를 삭제하는 방법을 설명하고자합니다.
프로젝트의 데이터베이스에서 여러 엔티티 간에 복잡한 참조 관계가 존재할 경우,
단순한 순차적 삭제 작업(deleteAll()
)은 외래 키 제약조건으로 인해 실패한 적이 있었습니다.
예를 들어, memberInfoRepository
, memberRepository
, memberImageRepository
, boardRepository
와 같이 서로 참조하는 테이블들의 데이터를 삭제할 때, 참조 순서에 맞지 않으면 데이터베이스 오류가 발생했습니다.
그렇기에 DB와 연동된 테스트시 각 엔티티간에 참조관계를 살펴보고 이에 맞게 삭제하는 번거로운 작업이 필요했습니다.
이를 해결하기 위해서 참조를 일시적으로 해제하고, 모든 테이블의 데이터를 안전하게 일괄 삭제하는 방법을 찾았습니다.