TIL

JPA delete가 안된다면

하얀잔디 2023. 5. 18. 15:43

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