• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

벌크 연산 질문

24.04.25 13:56 작성 24.04.25 14:14 수정 조회수 85

0

-- 단건 삭제
recruitRepository.delete(recruit);

-- 벌크 삭제
recruitSkillRepository.deleteRecruitSkills(recruitId);
recruitPositionRepository.deleteRecruitPositions(recruitId);
  • Q1. 단건 삭제 이후에 벌크 연산을 하면 delete가 실행이 안되는데 이유가 뭔가요?
    제가 생각해본 건 벌크 연산이 실행되면서 영속성 컨텍스트를 초기화하기 때문에 커밋 시점에 이전에 조회한 recruit이 사라졌기 때문이라고 생각하는데 맞을까요??


  • Q2. 벌크 연산을 먼저 수행하는 경우에는 단건 삭제도 정상적으로 처리됩니다. 단, 이때 select recruit 쿼리가 한 번 더 실행되는데 영속성 컨텍스트에 recruit 데이터가 없기 때문에 다시 조회를 해오는걸까요??


    그럼 이런 경우에는 영속성 컨텍스트를 초기화할 필요가 없을까요??

 

ps. 현재는 clearAutomatically 속성의 기본값이 false입니다!

@Modifying(clearAutomatically = true)

위처럼 속성을 true로 설정해야 영속성 컨텍스트가 초기화 되네요

 

프로젝트 하다가 간만에 막혀서 보러 왔는데 진짜 국밥강의네요..

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2024.04.26

안녕하세요. 나는 쓰레기야!님, 공식 서포터즈 David입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.