inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

엔티티매니저 persist 와 트랜잭션 커밋 관련해서 질문드립니다.

해결된 질문

305

최영원

작성한 질문수 5

0

안녕하세요. 영속성 컨텍스트와 관련해서 질문드립니다.

 

위 테스트를 실행하면 name이 마지막에 변경된 lee로 insert 쿼리가 날라갈것이라고 예상했으나 변경 전 값인 park로 insert 되었습니다.

제가 생각하는 insert 과정은 아래와 같은데 혹시 어떤게 잘못되었는지 알 수 있을까요..?
엔티티매니저의 persist로 영속성 컨텍스트에 멤버 엔티티 올림 -> 멤버 엔티티의 이름을 lee로 변경 -> 트랜잭션 커밋 -> 영속성 컨텍스트 flush -> 멤버객체(name 이 lee 인 상태)가 insert 됨.

 

추가로 변경감지도 되지 않는것 같아서 질문드립니다.

member1을 insert 하고 영속성 컨텍스트를 clear 한 뒤, 다시 select 해서 name을 변경했는데 update 쿼리가 날라가지 않네요..

jpql로 update 쿼리 짜서 하면 update 쿼리가 날라긴 합니다.. 변경감지는 왜 안되는 걸까요..?

java JPA

답변 2

2

김영한

안녕하세요. 최영원님

다음 코드에서 제가 주석 처리한 부분이 있는데요. 이 부분을 확인해주세요.

public class Member {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "t_member_seq")
@Column(name = "member_no", nullable = false, updatable = false)
private Long memberNo;

@Column(name = "name", /*nullable = false, updatable = false,*/ length = 10)
private String name;

}

감사합니다.

0

최영원

엔티티 쪽을 확인을 못해봤었네요...감사합니다!

0

David

안녕하세요. 최영원님, 공식 서포터즈 David입니다.

.
트랜잭션을 시작하고 커밋하는 부분이 안 보이네요.

테스트 전체 코드를 보여주실 수 있으실까요?

.
감사합니다.

0

최영원

테스트 코드는 두번째 이미지가 전부입니다. @DataJpaTest에 @Transactional가 있어서 따로 트랜잭션 관련해서는 설정하지 않았습니다.

0

David

이상하네요.

혹시 쿼리랑 쿼리에 바인딩 되는 파라미터 로그 캡쳐해주실 수 있을까요?

그리고 아래 링크 참고하셔서 프로젝트를 구글드라이브로 공유 부탁드립니다.

https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit#heading=h.yzd7ugcaglvn

 

 

0

최영원

프로젝트 공유 : https://drive.google.com/file/d/14qtQhY7R7Jmktrq4-eYImKZ_1RwHyw_e/view?usp=sharing

 

첫번째 테스트 실행 로그 입니다.

 

두번재 테스트 실행 로그 입니다.

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

0

33

2

inheritance startegy 선택시 고려사항

0

24

1

Entity 동등성 비교

0

23

1

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

0

48

1

H2데이터베이스 파일 생성

0

58

2

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

0

57

2

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

0

58

1

JPQL 메소드와 락

0

55

1

Delivery @OneToOne

0

61

1

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

0

97

2

UnsupportedOperationException 발생

0

87

3

H2 Database 연결이 안됩니다.

0

98

2

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

0

88

2

h2데이터베이스 실행오류

0

110

2

persistence.xml

0

112

2

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

0

83

1

영속성 컨텍스트

0

69

1

JPA 프록시

0

98

1

Native Query와 MyBatis

0

71

1

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

0

92

1

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

0

121

3

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

0

96

3

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

0

109

2

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

0

149

1