sql >> Databáze >  >> RDS >> PostgreSQL

Mapování sériového typu PostgreSQL s poznámkami Hibernate

Následující mapování by mělo fungovat dobře:

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

Všimněte si však, že generovaná hodnota pro čerstvě uložené objekty není k dispozici, dokud není relace vyprázdněna.

UPRAVIT: Všimněte si, že toto mapování nemá vliv, neumožní hibernaci vytvořit sloupec typu serial během generování schématu, protože Hibernate neví nic o povaze generování hodnot na straně databáze. Pokud tedy chcete, aby hibernace vytvořila sloupec se správným typem, musíte jej explicitně specifikovat:

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

A v nedávné verzi Hibernate (4.3) můžete použít toto:

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


  1. Chyba MySQL 1064 syntaxe, ale vše se zdá být v pořádku

  2. postgres:upgradovat uživatele na superuživatele?

  3. Co vlastně používá LISTAGG s ORDER BY NULL jako kritérium objednávky?

  4. Jak vybrat řádky, které mají časové razítko aktuálního dne?