sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Debe hibernate usar secuencias únicas para cada tabla?

Recientemente resolví este problema para mi proyecto. Utilizo el generador de secuencia mejorado (que es el predeterminado para los generadores de estilo de secuencia) y configuro prefer_sequence_per_entity parámetro a true .

Contenido de mi 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;

Por el lado del uso, solo necesita

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

Prefiero tener secuencias separadas porque ocasionalmente suelto una tabla y la vuelvo a crear, y quiero que las ID comiencen desde una.