작성
·
220
·
수정됨
0
-- 단건 삭제
recruitRepository.delete(recruit);
-- 벌크 삭제
recruitSkillRepository.deleteRecruitSkills(recruitId);
recruitPositionRepository.deleteRecruitPositions(recruitId);
Q1. 단건 삭제 이후에 벌크 연산을 하면 delete가 실행이 안되는데 이유가 뭔가요?
제가 생각해본 건 벌크 연산이 실행되면서 영속성 컨텍스트를 초기화하기 때문에 커밋 시점에 이전에 조회한 recruit이 사라졌기 때문이라고 생각하는데 맞을까요??
Q2. 벌크 연산을 먼저 수행하는 경우에는 단건 삭제도 정상적으로 처리됩니다. 단, 이때 select recruit 쿼리가 한 번 더 실행되는데 영속성 컨텍스트에 recruit 데이터가 없기 때문에 다시 조회를 해오는걸까요??
그럼 이런 경우에는 영속성 컨텍스트를 초기화할 필요가 없을까요??
ps. 현재는 clearAutomatically 속성의 기본값이 false입니다!
@Modifying(clearAutomatically = true)
위처럼 속성을 true로 설정해야 영속성 컨텍스트가 초기화 되네요
프로젝트 하다가 간만에 막혀서 보러 왔는데 진짜 국밥강의네요..