inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

영속성 컨텍스트 2

업데이트 쿼리가 마지막에 나가는 이유를 모르겠습니다.

259

원석나

작성한 질문수 65

1

이 사진처럼 코드를 작성하면 INSERT 쿼리만 나가는데요 !!

이 코드로 하면 INSERT쿼리후   

orderItem 테이블에 업데이트 쿼리가 마지막에 나가더라구요  

변경감지가 일어났다고 하기엔

persist하기전에 다 연관관계를 잡아뒀는데 

왜 업데이트 쿼리가 나가는지 이해가 가질 않습니다.

JPA java

답변 1

0

임세준

OrderItem이 영속화되는 시점에 Item은 비영속 상태이기 때문입니다.
미리 setItem은 해두혔어도 item 객체의 고유식별자가 없기 때문에 해당 시점에 영속성컨텍스트에 관리를 해줄 수 가 없습니다.
추후 em.persist(item)을 하게 되면 비로소 item이 영속상태가 되고 변경감지가 일어납니다.

0

원석나

그럼 orderItem을 persist 할 시점에 orderItem은 영속화 되었지만  안에 객체에 item참조변수값이 비어있는상태가 되고

추후 item을 영속화 하면 그때서야 orderItem에 item참조변수값이 변경이 되어 

commit을 통해 flush가 발생했을때  영속컨텍스트에 있는 orderItem의 최초의 값(스냅샵)과  마지막으로 업데이트된 값이 달라서 변경감지가 일어나기때문에 업데이트 쿼리가 나간다는 말씀이시죠?

0

임세준

예 저는 당연히 그렇게 생각하고 넘어갔는데, 구체적으로 물으시니 100% 확신한다고는 말씀을 못 드리겠네요 ^^;;

공식 답변팀의 확인이 필요합니다 ㅠ

0

원석나

저도 세준님 답변이 맞는것 같습니다 !! 그렇지 않으면 뭔가 말이 안되는거 같아서 ㅠㅠ  

답변 너무나 감사드립니다 !!

0

김영한

세준님 감사합니다^^

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

28

2

inheritance startegy 선택시 고려사항

0

22

1

Entity 동등성 비교

0

21

1

실무 조언 관련 질문입니다.

0

47

1

H2데이터베이스 파일 생성

0

56

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

53

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

52

1

JPQL 메소드와 락

0

55

1

Delivery @OneToOne

0

60

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

94

2

UnsupportedOperationException 발생

0

86

3

H2 Database 연결이 안됩니다.

0

95

2

연관관계 매핑 질문드립니다.

0

85

2

h2데이터베이스 실행오류

0

108

2

persistence.xml

0

108

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

80

1

영속성 컨텍스트

0

66

1

JPA 프록시

0

96

1

Native Query와 MyBatis

0

70

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

87

1

임베디드 타입 예시 코드 관련 질문

0

115

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

95

3

인텔리제이 패키지 커서 단축키 질문

0

108

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

145

1