Följande mappning borde fungera bra:
@Column(name = "orderId")
@Generated(GenerationTime.INSERT)
private Integer orderId;
Observera dock att genererat värde för nyligen sparade objekt inte är tillgängligt förrän sessionen har tömts.
EDIT: Observera att denna mappning inte påverkar gör inte Hibernate att skapa en kolumn av typen serial
under schemagenerering, eftersom Hibernate inte vet något om karaktären av värdegenerering på databassidan. Därför, om du vill att Hibernate ska skapa en kolumn med rätt typ, måste du ange det uttryckligen:
@Column(name = "orderId", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer orderId;
Och på en ny Hibernate-version (4.3) kan du använda detta:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long orderId;