728x90
반응형
jpa delete 안되는 문제
코드를 살펴보면 보통 delete 후에 insert 하는 작업이 있는 경우 delete가 작동안하게 됨
update가 안되는 경우도 아래의 해결방법과 원인을 살펴보기
해결 방법
repository.flush()로 date 반영해준 뒤 insert 작업하기
👉 순서상 insert 가 먼저 실행되기에 delete가 적용 안될 수 있음
delete -> flush -> insert 순으로 실행하기
원인
hibernate에서 동작하는 SQL 순서가 정해져 있기 때문
hibernate 레퍼런스를 찾아보면 작업 순서가 정확하게 나와있음
@Transactional이 있기 때문에 함수 종료시 쿼리문들이 한꺼번에 실행되는데 이때 insert가 먼저 실행되고 delete가 마지막에 실행되기 때문에 delete를 하고 반영을 해준 이후 insert를 수행해줘야 함
반응형
'프로그래밍 > JPA' 카테고리의 다른 글
[JPA] ORM이란, JPA 사용 이유? (0) | 2023.01.10 |
---|---|
[JPA] JPA 날쿼리 사용하기(nativeQuery = true) (0) | 2022.12.29 |
[JPA] JPA란? (0) | 2022.09.28 |
[JPA] org.hibernate.AnnotationException: @Temporal should only be set on a java.util.Date or java.util.Calendar property 해결 방법 (0) | 2022.08.24 |
[JPA] Save 후 id 가져오기 (0) | 2022.08.22 |