De volgende mapping zou goed moeten werken:
@Column(name = "orderId")
@Generated(GenerationTime.INSERT)
private Integer orderId;
Houd er echter rekening mee dat de gegenereerde waarde voor pas opgeslagen objecten niet beschikbaar is totdat de sessie is leeggemaakt.
BEWERKEN: Houd er rekening mee dat deze toewijzing geen invloed heeft op Hibernate om een kolom van het type serial
te maken tijdens het genereren van schema's, omdat Hibernate niets weet over de aard van het genereren van waarden aan de databasezijde. Daarom, als u wilt dat Hibernate een kolom met het juiste type maakt, moet u dit expliciet specificeren:
@Column(name = "orderId", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer orderId;
En op een recente Hibernate-versie (4.3) kun je dit gebruiken:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long orderId;