J'ai récemment résolu ce problème pour mon projet. J'utilise le générateur de séquence amélioré (qui est la valeur par défaut pour les générateurs de style séquence) et définit le prefer_sequence_per_entity
paramètre à true
.
Contenu de mon 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;
Côté utilisation il vous suffit de
@Id @GeneratedValue(generator="optimized-sequence")
public long id;
Je préfère avoir des séquences séparées car parfois je supprime une table et la recrée, et je veux que l'ID commence à partir d'une.