Domanda

E' possibile bypassare @GeneratedValue per un ID in Hibernate, abbiamo un caso in cui, la maggior parte delle volte, vogliamo che l'ID venga impostato utilizzando GeneratedValue, ma in alcuni casi vorrei impostare l'ID manualmente.

È possibile farlo?

È stato utile?

Soluzione

So che puoi farlo nelle specifiche JPA, quindi dovresti essere in grado di farlo in Hibernate (usando le annotazioni JPA+).

Se compili semplicemente il campo ID del nuovo modello persistente che stai creando, quando "Unisci" quel modello nell'EntityManager, utilizzerà l'ID che hai impostato.

Ciò ha però delle conseguenze.Hai appena utilizzato quell'ID, ma la sequenza specificata dall'annotazione GeneratedValue non lo sa.A meno che tu non stia specificando un ID non utilizzato che sia INFERIORE al valore della sequenza corrente, otterrai un problema una volta che la sequenza raggiunge il valore che hai appena utilizzato.

Quindi, forse posso vedere dove potresti volere che l'utente sia in grado di specificare un ID, ma poi devi catturare la possibile eccezione (ID duplicato) che potrebbe verificarsi in futuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top