sql >> データベース >  >> RDS >> PostgreSQL

Hibernateアノテーションを使用したPostgreSQLシリアルタイプのマッピング

    次のマッピングは正常に機能するはずです:

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

    ただし、新しく保存されたオブジェクトに対して生成された値は、セッションがフラッシュされるまで使用できないことに注意してください。

    編集: このマッピングは、Hibernateがserialタイプの列を作成することには影響しないことに注意してください。 スキーマ生成中、Hibernateはデータベース側での値生成の性質について何も知らないためです。したがって、Hibernateで適切なタイプの列を作成する場合は、明示的に指定する必要があります。

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

    また、最近のHibernateバージョン(4.3)では、これを使用できます:

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


    1. データベースはMySQLとPythonで自動的に更新されません

    2. 1つのSQLクエリに複数の行を挿入しますか?

    3. 異なるデータベース間で列を選択します

    4. SQLDeveloperはスクリプトの実行をサポートしていますか?