inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

변경감지(dirty checking) 관련 기본적인 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 영속성 컨텍스트에서 변경 감지 (dirty checking) 부분 수강 중 질문이 있습니다. 변경감지란, 영속성 컨텍스트에서 조회(em.find)한 값을 변경하면, 1차 캐시도 자동으로 업데이트가 일어나는 현상으로 이해하였습니다. 위의 코드와 같이 em.find로 조회하는 경우 1차 캐시에도 Id=memberA 인 엔티티가 저장되는 것으로 알고 있는데요. 1차 캐시에 저장되는 엔티티의 주소가 x001이라고 했을 때, em.find로 가져온 객체 memberA도 같은 객체 (x001)를 가져오기 때문에, memberA의 값을 업데이트하면 1차 캐시 값도 자동으로 업데이트 되는게 맞을까요?

  • java
  • jpa
  • 더티체킹
  • dirtychecking
  • 변경감지
dongdong2 댓글 1 좋아요 0 조회수 140

리스트를 한번에 업데이트 하고자 할 때 아래와 같은 방법 말고 다른 게 있을까요?

미해결

예를 들어 특정 회원을 전부 탈퇴시키고 싶을 때의 수도 코드입니다. @Transactional void 회원탈퇴메소드 List<회원> 회원리스트 = findByxxx(); for (회원 : 회원리스트) { 회원.set활성여부("탈퇴"); } return; 이러면 이제 리턴 시점에 회원리스트 길이만큼 update 쿼리가 나가는 것을 봤는데요, 혹시 이거 말고 한꺼번에 업데이트 하는 방법이 있는지 궁금합니다. 아니면 그냥 이런 식으로 건별로 업데이트를 해야겠지요.

  • jpa
  • dirtychecking
  • list
박민호 댓글 1 좋아요 0 조회수 781

인기 태그

인프런 TOP Writers

주간 인기글