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

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

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

작성한 질문수

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

플러시

generatedvalue선택하고 setter하기

작성

·

197

0

generatedvalue로 id값이 생성됐는데 전 그걸까먹고 id값을 setting해줬어요

그랬더니 detached entity passed to perist 라는 오류가떴어요

준영속엔티티를 영속화시키려고해서 발생하는오류잖아요?

왜 이런 오류가뜨는걸까요? id생성전략은 sequence예요

sequence는 다음과 같이 동작해요

<<persist 를 호출하면 sequence 를 가져옵니다.

가져온 Sequence 를 id 에 할당하고 (영속성 상태), transaction 이 commit 될 때, insert 쿼리를 날립니다.>>

근데 이러면 제가 set을 해도 새로운 id에 덮어씌여져야하는거아닌가요?

답변 1

0

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

엔티티의 아이디 부여를 하이버네이트 내부에서 관리하고 있는데,

이미 아이디가 할당된 엔티티를 persist 하거나 사용자가 이를 강제로 바꿀경우

이를 detached 한 엔티티라고 간주하기 때문에 그런 메시지를 출력합니다.

감사합니다.

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

작성한 질문수

질문하기