1. deleteById 와 delete 차이를 확인하기
2. 정말 잘 들어갔는지 확인하기
1, 2번이 잘 됐다면
3. @Transactional 을 잘 확인하기
4. 그래도 모르겠다면 insert 후 delete를 호출하는건 아닌지 확인하기
내 경험은 하나의 엔티티를 다른 값으로 변경하는건 잘 들어갔는데, delete 문은 적용되지 않았다.
-> hibernate에서 동작하는 SQL 순서가 정해져 있기 때문이란다!!!!
@Transactional이 있기 때문에 함수 종료시 쿼리문들이 한꺼번에 실행되는데 이때 insert가 먼저 실행되고 delete가 마지막에 실행되기 때문에 delete를 하고 반영을 해준 이후 insert를 수행해줘야 함
-> 필자의 경우 자식 함수에서 delete 문을 수행했기때문에, 그 함수에서
@Transactional(propagation = Propagation.REQUIRES_NEW)
어노테이션을 적용했음.
참고 :
https://carpet-part1.tistory.com/711
[JPA] jpa delete 안됨
jpa delete 안되는 문제 코드를 살펴보면 보통 delete 후에 insert 하는 작업이 있는 경우 delete가 작동안하게 됨 update가 안되는 경우도 아래의 해결방법과 원인을 살펴보기 해결 방법 repository.flush()로 d
carpet-part1.tistory.com
'TIL' 카테고리의 다른 글
Boolean vs boolean (0) | 2023.06.01 |
---|---|
cherry-pick (1) | 2023.05.19 |
spring.profiles.active 에 관하여 (2) | 2023.05.12 |
Request Method OPTIONS란? (0) | 2023.05.10 |
checked Exception vs unchecked Exception (0) | 2023.05.09 |