JPA 프로젝트를 진행하면서 Hibernate가 @id와 @GeneratedValue를 병용할 수 없다는 점을 알게되어 기록한 내용이다.
hibernate의 6.6 버전 이상부터는 id값을 명시하여 사용할 경우, generatedValue 어노테이션을 병용할 수 없다.
@id는 해당 필드변수를 PK로 설정하고, @GeneratedValue는 주키 전략에 대한 내용을 설정할 수 있는 어노테이션이다.
6.6버전 이하에서는 두 어노테이션을 병용할 수 있지만, 그 이상의 버전 부터는 병용할 수 없다.
(*Hibernate StaleObjectStateException After Upgrading to 6.6.3: Row was updated or deleted by another transaction or unsaved-value mapping was incorrect 오류 발생)
stackoveflow에서 찾아보았을때, 이로 인해 나타난 낙관적락 예외 오류 발생 상황은 아래와 같다.
따라서 6.6ver 이상부터는 이에 대한 충돌을 방지하기위해 아예 막아놓은 것으로 판단된다.
@id, @GeneratedValue - https://velog.io/@leesomyoung/JPA-Id-Column-GeneratedValue-Entity-Table