문제
바이패스가 가능한가요? @GeneratedValue
Hibernate의 ID에 대해 우리는 대부분의 경우 ID를 다음을 사용하여 설정하기를 원하는 경우가 있습니다. GeneratedValue
, 그러나 어떤 경우에는 ID를 수동으로 설정하고 싶을 수도 있습니다.
이것이 가능합니까?
해결책
JPA 사양에서 이 작업을 수행할 수 있다는 것을 알고 있으므로 Hibernate(JPA+ 주석 사용)에서도 수행할 수 있어야 합니다.
생성 중인 새 영구 모델의 ID 필드만 입력하면 해당 모델을 EntityManager에 "병합"할 때 설정한 ID가 사용됩니다.
하지만 여기에는 영향이 있습니다.방금 해당 ID를 모두 사용했지만 생성된 값 주석으로 지정된 시퀀스는 이를 알지 못합니다.현재 시퀀스 값보다 작은 미사용 ID를 지정하지 않는 한 시퀀스가 방금 사용한 값을 따라잡으면 문제가 발생하게 됩니다.
따라서 사용자가 ID를 지정할 수 있는 위치를 알 수 있지만 나중에 발생할 수 있는 예외(중복 ID)를 포착해야 합니다.
제휴하지 않습니다 StackOverflow