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

유재선님의 프로필 이미지

작성한 질문수

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

persist() 호출 시 시퀀스로 기본 키 값이 초기화 되는 원리가 궁금합니다.

해결된 질문

작성

·

236

0

안녕하세요. 강의 너무 잘 듣고 있습니다. 이해가 잘 되도록 설명을 정말 잘해주셔서 재밌게 공부하고 있습니다.

강의를 듣던 중 의문이 생겨 질문드립니다.

member의 아이디가 1로 출력됩니다.

MySQL을 사용할 때(Oracle로 시퀀스를 만들어도 동일합니다.) persist를 호출하는 시점에서

memebr가 id로 1로 초기화가 되는데 내부적으로 setter를 호출해서 초기화되는 것이라고 생각했었습니다.

근데 setter를 지워도 초기화가 되는 것이 신기합니다.

private 제어자로 설정했기 때문에

member.id = 1;

이렇게 할 수 도 없을텐데 어떤 과정으로 초기화가 되는건지 궁금합니다.

답변 2

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 유재선님

자바에 리플렉션 같은 기능들을 사용하면 private 필드에 값을 직접 입력할 수 있습니다^^

하이버네이트 라이브러리가 내부에서 이런 방법들을 사용해서 setter없이 값을 바로 입력해버립니다.

감사합니다.

1

유재선님의 프로필 이미지
유재선
질문자

답변 감사합니다. 궁금한 점이 해결되었습니다.