PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Sollte Hibernate für jede Tabelle eindeutige Sequenzen verwenden?

Ich habe dieses Problem kürzlich für mein Projekt gelöst. Ich verwende den erweiterten Sequenzgenerator (der die Standardeinstellung für Generatoren im Sequenzstil ist) und setze prefer_sequence_per_entity Parameter auf true .

Inhalt meiner 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;

Auf der Nutzungsseite brauchen Sie nur

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

Ich bevorzuge separate Sequenzen, weil ich gelegentlich eine Tabelle lösche und neu erstelle, und ich möchte, dass die IDs bei eins beginnen.