sql >> Database teknologi >  >> RDS >> PostgreSQL

Kortlægning af PostgreSQL seriel type med Hibernate-annoteringer

Følgende kortlægning burde fungere fint:

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

Bemærk dog, at den genererede værdi for nyligt gemte objekter ikke er tilgængelig, før sessionen er tømt.

EDIT: Bemærk, at denne kortlægning ikke påvirker, gør ikke Hibernate til at oprette en kolonne af typen serial under skemagenerering, da Hibernate ikke ved noget om arten af ​​værdigenerering på databasesiden. Derfor, hvis du vil have Hibernate til at oprette en kolonne med en korrekt type, skal du angive det eksplicit:

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

Og på en nylig Hibernate-version (4.3) kan du bruge denne:

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


  1. Skabelonmønstre og modifikatorer til numerisk formatering i PostgreSQL

  2. Sådan vises forespørgsel og resultater på separat fane i SQL Server Management Studio (SSMS) - SQL Server / TSQL-vejledning, del 15

  3. Bliver den primære nøgle automatisk indekseret i MySQL?

  4. Træk sekunder fra en dato-tidsværdi i MariaDB