-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
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에 덮어씌여져야하는거아닌가요?
답변을 작성해보세요.
0
codesweaver
2022.10.26
안녕하세요, 김민지 님! 공식 서포터즈 codesweaver 입니다.
엔티티의 아이디 부여를 하이버네이트 내부에서 관리하고 있는데,
이미 아이디가 할당된 엔티티를 persist 하거나 사용자가 이를 강제로 바꿀경우
이를 detached 한 엔티티라고 간주하기 때문에 그런 메시지를 출력합니다.
감사합니다.
답변 1