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

hibernateはテーブルごとに一意のシーケンスを使用する必要がありますか?

    私は最近、私のプロジェクトでこの問題を解決しました。拡張シーケンスジェネレーター(シーケンススタイルジェネレーターのデフォルト)を使用して、prefer_sequence_per_entityを設定します。 trueへのパラメータ 。

    package-info.javaの内容 :

    @GenericGenerator(
        name = "optimized-sequence",
        strategy = "enhanced-sequence",
        parameters = {
            @Parameter(name="prefer_sequence_per_entity", value="true"),
            @Parameter(name="optimizer", value="hilo"),
            @Parameter(name="increment_size", value="50")})
    package org.example.model;
    
    import org.hibernate.annotations.GenericGenerator;
    import org.hibernate.annotations.Parameter;
    

    使用面では、必要なのは

    @Id @GeneratedValue(generator="optimized-sequence")
    public long id;
    

    テーブルを削除して再作成することがあり、IDを1つから開始したいので、個別のシーケンスを使用することをお勧めします。



    1. 外部結合とGroupByを使用してクエリにNULL値を含める方法

    2. 列が存在しない場合、Postgresはデフォルト値を返します

    3. MariaDBでモジュロを返す3つの方法

    4. テーブルをPostgreSQLとマージする