PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Mappatura del tipo seriale PostgreSQL con annotazioni Hibernate

La seguente mappatura dovrebbe funzionare correttamente:

@Column(name = "orderId")
@Generated(GenerationTime.INSERT)
private Integer orderId;

Si noti, tuttavia, che il valore generato per gli oggetti appena salvati non è disponibile fino allo svuotamento della sessione.

MODIFICA: Nota che questa mappatura non ha effetto non fa in modo che Hibernate crei una colonna di tipo serial durante la generazione dello schema, poiché Hibernate non sa nulla della natura della generazione del valore lato database. Pertanto, se vuoi che Hibernate crei una colonna con un tipo appropriato, devi specificarla esplicitamente:

@Column(name = "orderId", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer orderId;

E su una recente versione di Hibernate (4.3), puoi usare questo:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long orderId;