Hibernate @OnDelete(CASCADE)로 인한 TransientObjectException 해결
·
Spring/JPA
프로젝트를 진행하다보면 다양한 오류를 만난다. 대부분 사소한 것들이지만, 그중에는 기술의 원리를 이해하고 있어야만 원인을 파악할 수 있는 것들도 있다. 이번에 프로젝트를 진행하면서 @OnDelete(CASCADE)를 사용하다가 TransientObjectException 등 예상치 못한 여러 문제에 부딪혔다. 단순한 JPA Cascade와는 전혀 다른 동작 원리 때문에 생긴 문제였다. 이번 글에서는 이 예외가 발생한 이유와 해결 방법을 공유하고자 한다. 삭제 전파를 위한 여러가지 선택지 중 OnDelete를 사용한 이유는 양방향 연관관계를 맺지 않고 현재의 코드에서 가장 적은 변경으로 삭제 전파를 이용하기 위함이었다. 이 글의 대상 독자하이버네이트 OnDelete를 이용한 CASCADE 제약조건을 건 ..