PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Zuordnen des PostgreSQL-Serientyps mit Hibernate-Anmerkungen

Die folgende Zuordnung sollte gut funktionieren:

@Column(name = "orderId")
@Generated(GenerationTime.INSERT)
private Integer orderId;

Beachten Sie jedoch, dass der generierte Wert für neu gespeicherte Objekte nicht verfügbar ist, bis die Sitzung geleert wird.

BEARBEITEN: Beachten Sie, dass diese Zuordnung keinen Einfluss darauf hat, dass Hibernate keine Spalte vom Typ serial erstellt während der Schemagenerierung, da Hibernate nichts über die Art der Wertgenerierung auf der Datenbankseite weiß. Wenn Sie also möchten, dass Hibernate eine Spalte mit einem richtigen Typ erstellt, müssen Sie ihn explizit angeben:

@Column(name = "orderId", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer orderId;

Und in einer neueren Hibernate-Version (4.3) können Sie Folgendes verwenden:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long orderId;