최대 절전 모드에서 ID를 @GeneratedValue
으로 우회 할 수 있습니까? 대부분의 경우 GeneratedValue
을 사용하여 ID를 설정하려고하지만 어떤 경우에는 수동으로 ID를 설정하려고합니다 .최대 절전 모드에서 GeneratedValue를 무시
이 작업을 수행 할 수 있습니까?
최대 절전 모드에서 ID를 @GeneratedValue
으로 우회 할 수 있습니까? 대부분의 경우 GeneratedValue
을 사용하여 ID를 설정하려고하지만 어떤 경우에는 수동으로 ID를 설정하려고합니다 .최대 절전 모드에서 GeneratedValue를 무시
이 작업을 수행 할 수 있습니까?
JPA 스펙에서이를 수행 할 수 있다는 것을 알고 있으므로 (JPA + 주석을 사용하여) 최대 절전 모드에서 수행 할 수 있어야합니다.
작성중인 새 영구 모델의 ID 필드를 채우는 경우 해당 모델을 EntityManager에 "병합"하면 설정 한 ID가 사용됩니다.
그러나 이것은 파급 효과가 있습니다. 방금 ID를 다 써 버렸지 만 GeneratedValue 주석으로 지정된 시퀀스는 그 ID를 모릅니다. 현재 시퀀스 값보다 작지 않은 ununsed ID를 지정하지 않는 한, 시퀀스가 방금 사용한 값에 도달하면 문제가 발생할 것입니다.
어쩌면 사용자가 ID를 지정할 수있는 위치를 알 수 있지만 나중에 나타날 수있는 예외 (중복 ID)를 잡아야합니다.
두 경우 모두 동일한 순서로 ID가 생성되므로 트랜잭션의 다른 지점에서 ID가 생성되므로 중복이 발생하지 않습니다. –
나는 이것에 대해 의문을 가지고 있습니다. http://stackoverflow.com/questions/3194721/bypass-generatedvalue-in-hibernate-merge-data-not-in-db 및 http://stackoverflow.com/questions와 같은 질문을보십시오./2108178/id-generatedvalue-but-set-own-id-value. –
이것이 올바른 것 같지 않습니다. 그것은 확실히 최대 절전 모드에서 작동하지 않으며 또한 이것이 대부분의 JPA 공급자들과 작동 할 것이라는 의구심을 가지고 있습니다. – cyberoblivion