Le mappage suivant devrait fonctionner correctement :
@Column(name = "orderId")
@Generated(GenerationTime.INSERT)
private Integer orderId;
Notez cependant que la valeur générée pour les objets fraîchement enregistrés n'est pas disponible tant que la session n'est pas vidée.
MODIF : Notez que ce mappage n'affecte pas la mise en veille prolongée pour créer une colonne de type serial
lors de la génération du schéma, car Hibernate ne sait rien de la nature de la génération de valeur côté base de données. Par conséquent, si vous souhaitez qu'Hibernate crée une colonne avec un type approprié, vous devez le spécifier explicitement :
@Column(name = "orderId", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer orderId;
Et sur une version récente d'Hibernate (4.3), vous pouvez utiliser ceci :
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long orderId;