Sto utilizzando Hibernate con un database MySQL nel mio progetto MVC di primavera. Ho usato l'annotazione @GeneratedValue
per impostare auto-incremenet sui miei campi ID. Così tutti i miei entità hanno questo pezzo di codice e tutto funziona come previsto:ibernazione - come impostare l'incremento automatico nei database mysql e oracle?
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
In questo momento, voglio passare a un database Oracle. Ora, ho due domande qui:
1. Qual è la soluzione migliore per impostare il campo di incremento automatico in Oracle? Ho usato questo codice, ma non funziona:
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_Sequence")
@SequenceGenerator(name="id_Sequence", allocationSize=1)
2 (domanda più importante). C'è un modo per usare un'annotazione univoca per impostare l'auto-incremento che funzionerà sia per MySQL che per Oracle?
Grazie per la risposta. Non è necessario usare 'strategy = GenerationType.SEQUENCE' nel tuo primo suggerimento? – hamed
Non penso perché hai definito il tuo generatore come un '@ SequenceGenerator'. –
Ho messo '@SequenceGenerator (name =" some_gen ", sequenceName =" Emp_Seq ") @GeneratedValue (generator =" some_gen ")' sopra il mio id, ma non funziona. Anche '@GeneratedValue (strategy = GenerationType.TABLE)' non funziona. – hamed