PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

L'ibernazione dovrebbe utilizzare sequenze univoche per ogni tabella?

Ho recentemente risolto questo problema per il mio progetto. Uso il generatore di sequenze avanzato (che è l'impostazione predefinita per i generatori di stili di sequenza) e imposto prefer_sequence_per_entity parametro su true .

Contenuto del mio 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;

Per quanto riguarda l'utilizzo, hai solo bisogno

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

Preferisco avere sequenze separate perché occasionalmente eliminerò una tabella e la ricreerò e voglio che l'ID inizi da uno.