🙌잘못된 설명에 대한 지적이나 조언의 댓글을 환영합니다🙌
오류문구
org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade
원인
삭제나 업데이트 시 수정된 데이터가 제대로 반영되지 않은 상태에서 또 변경을 시도할 떄 발생하는 것으로 보인다.
데이터가 연관관계를 가지는 상황에서 원본 데이터를 수정하고 이를 참조하는 다른 엔티티의 컬럼을 변경하려고 시도할때 위와같은 오류가 발생됐다. 데이터 수정 순서를 변경하거나 아래 해결방안의 옵션을 추가하는 것으로 문제를 해결 할 수 있다.
해결방안
1. 엔티티에 orphanRemoval=true 추가
이 옵션은 삭제 등의 작업을 통해 joinColumn한 PK가 NULL 상태로 변경된 경우 해당 객체를 DELETE 해준다.
2. Cascade 옵션 삭제
이미 삭제한 코드를 Cascade 옵션이 부여된 상태에서 다시 참조하는 경우 해당 오류가 발생할 수 있다.
따라서 Cascade 옵션이 불필요하다면 이를 삭제하는 것도 방법이 될 수 있다.
또는 코드의 순서를 적절하게 변경하는 것도 도움이 된다.
참고자료
https://dev-elop.tistory.com/entry/JPA-orphanRemoval-%EC%9A%A9%EB%8F%84
'BE' 카테고리의 다른 글
[postgreSQL] pgAdmin4 테이블 csv 파일 추출 방법 (0) | 2023.02.11 |
---|---|
[Spring] 스프링 웹 개발 기초 (0) | 2023.01.07 |
[AxiosError] Request failed with status code 403 (0) | 2022.04.27 |
[ERROR] ContextLoaderListener 관련 오류 (4) | 2022.04.20 |