article thumbnail image
Published 2022. 11. 14. 20:26
728x90
반응형

jpa delete 안되는 문제

코드를 살펴보면 보통 delete 후에 insert 하는 작업이 있는 경우 delete가 작동안하게 됨

update가 안되는 경우도 아래의 해결방법과 원인을 살펴보기

 

 


해결 방법

repository.flush()로 date 반영해준 뒤 insert 작업하기
👉 순서상 insert 가 먼저 실행되기에 delete가 적용 안될 수 있음

delete -> flush -> insert 순으로 실행하기

 

 


원인

hibernate에서 동작하는 SQL 순서가 정해져 있기 때문

hibernate 레퍼런스를 찾아보면 작업 순서가 정확하게 나와있음

@Transactional이 있기 때문에 함수 종료시 쿼리문들이 한꺼번에 실행되는데 이때 insert가 먼저 실행되고 delete가 마지막에 실행되기 때문에 delete를 하고 반영을 해준 이후 insert를 수행해줘야 함

반응형
복사했습니다!