Následující mapování by mělo fungovat dobře:
@Column(name = "orderId")
@Generated(GenerationTime.INSERT)
private Integer orderId;
Všimněte si však, že generovaná hodnota pro čerstvě uložené objekty není k dispozici, dokud není relace vyprázdněna.
UPRAVIT: Všimněte si, že toto mapování nemá vliv, neumožní hibernaci vytvořit sloupec typu serial
během generování schématu, protože Hibernate neví nic o povaze generování hodnot na straně databáze. Pokud tedy chcete, aby hibernace vytvořila sloupec se správným typem, musíte jej explicitně specifikovat:
@Column(name = "orderId", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer orderId;
A v nedávné verzi Hibernate (4.3) můžete použít toto:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long orderId;