PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Mappage du type de série PostgreSQL avec les annotations Hibernate

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;