Bypass GeneratedValue no Hibernate
Pergunta
É possível @GeneratedValue
desvio para uma identificação no Hibernate, temos um caso em que, na maioria das vezes nós queremos o ID a ser definido usando GeneratedValue
, mas em certos casos, gostaria de definir o ID manualmente.
Isso é possível fazer?
Solução
Eu sei que você pode fazer isso na especificação JPA, assim que você deve ser capaz de, em Hibernate (usando JPA anotações +).
Se você acabou de preencher o campo de ID do novo modelo persistente você está criando, então, quando você "Merge" esse modelo para o EntityManager, ele usará o ID definido já.
Este tem ramificações, no entanto. Você acabou usado até que a ID, mas a sequência especificada pela anotação GeneratedValue não sabe que. A menos que você está especificando um ID ununsed que é menos do que o valor de seqüência atual, você está indo para obter um problema uma vez que a seqüência alcança o valor que você acabou de usar.
Então, talvez eu possa ver onde você pode querer que o usuário seja capaz de especificar um ID, mas então você precisa pegar a possível exceção (duplicado ID) que pode vir no futuro.