• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

generatedvalue선택하고 setter하기

22.10.25 10:44 작성 조회수 146

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님의 프로필

codesweaver

2022.10.26

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

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

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

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

감사합니다.