인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김민지님의 프로필 이미지
김민지

작성한 질문수

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

플러시

IDENTITY - 트랜잭션을 지원하는 쓰기지연

작성

·

208

0

JPA책의 135P를 보면

IDENTITY는 트랜잭션을 지원하는 쓰기지연이 안된다고 했는데 save를 제외한 update, delete등은 동작하지않나요?

SAVE일때는 디비에저장해야 식별자를 구할수있으니까 그랬던거고 UPDATE는 이미 식별자를 알고있잖아요
아래와같이 테스트를 해봤을때도 update문이 가장 마지막에 출력이 됩니다.

@Test
@Commit
@Transactional
public void Parent_Child(){
   Member member = Member.builder().name("김길동").build();
   em.persist(member);
   System.out.println("-=====");
   em.flush();
   em.clear();
   Member member1 = em.find(Member.class, member.getId());
   member1.setName("이름바꿈");
   System.out.println("====");


}

답변 1

1

안녕하세요. 김민지님, 공식 서포터즈 David입니다.

트랜잭션이 끝나면 flush가 호출되기 때문에 update 쿼리가 나가는 것은 정상으로 보여집니다.

감사합니다.

김민지님의 프로필 이미지
김민지

작성한 질문수

질문하기