Programming/TroubleShooting

JPA 에서 deleteById가 작동하지 않는 경우

LazyCat 2024. 2. 29. 16:24
반응형
  • 문제상황

문제의 서비스 코드이다.

분명히 콘솔창에선 오류메세지도 없고

디버그 모드로 postId를 추적해봐도 해당 메소드에 잘 입력되는데

이상하게 Delete 쿼리문만 날라가지 않는 것이다.

정말 몇시간동안 이 오류에 대해 찾기 위해 부리나케 뛰어다녔다..

 

  • 해결방식

코드상의 오류가 아니라면 JPA연관관계를 설정할 때 무언가(?)잘못 설정해서

게시물을 삭제하려면 다른 엔티티까지 삭제하도록 설정을 해놓지 않았을까..?

(라는 결론에 이르기까지 약 몇시간이 걸림)

 

  • 결과

잡았다 이녀석!!!! 이녀석을 참수형해 처해라

 

File 엔티티의  컬럼 중에서 cascade = CascadeType.All 를 걸어놓은 것이 문제였다.

제대로 알지 못하는 기능은 사용하지 마

이 녀석은 엔티티 객체의 생명주기, 고아객체와 관련있는 녀석인데

대충 '자바 ORM 표준 JPA 프로그래밍'에서 한번 본적이 있소 ㅋ 하며 사용해버린 무지의 죗값은

정보의 바다속에 나를 익사시키며 치르렀다...

 

아직 File 서비스, 컨트롤러로 해당 객체를 완성시키지 않은 상태에서

post와 생명주기를 맞춰버리는 까닭에

delete 명령어가 flush()-commit()되지 않고 있던 것이다.

 

결론적으로 주말에 한번 더 JPA 기초를 다지기 위해 책을 정독할 예정이다.

프로젝트와 병행에서 가장 중요한 것은 기초 또 기초!!!!!!! 화이팅 

 

반응형