sql >> Databasteknik >  >> RDS >> PostgreSQL

Mappning av PostgreSQL seriell typ med Hibernate-kommentarer

Följande mappning borde fungera bra:

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

Observera dock att genererat värde för nyligen sparade objekt inte är tillgängligt förrän sessionen har tömts.

EDIT: Observera att denna mappning inte påverkar gör inte Hibernate att skapa en kolumn av typen serial under schemagenerering, eftersom Hibernate inte vet något om karaktären av värdegenerering på databassidan. Därför, om du vill att Hibernate ska skapa en kolumn med rätt typ, måste du ange det uttryckligen:

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

Och på en ny Hibernate-version (4.3) kan du använda detta:

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


  1. JDBC Oracle - Hämta förklara plan för fråga

  2. Guide till designdatabas för lagerhanteringssystem i MySQL

  3. Hur Tand() fungerar i PostgreSQL

  4. Bästa praxis för lös koppling mellan data och användargränssnitt i Android - Adapter, Filter, CursorLoader och ContentProvider