Hibernate generando dos ID de secuencia diferentes para inserción PostgreSQL

Tengo una entidad definida con una clave primaria generada por secuencia:

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "id_key_gen")
@SequenceGenerator(name = "id_key_gen", sequenceName = "id_key_seq")
@Column(name = "id", unique = true, nullable = false)
public int getId() {
    return this.id;
}

Estoy usando PostgreSQL, y esta clave se define como una serie. De acuerdo con PostgreSQL

select last_value from id_key_seq;

devoluciones

1603.

Cuando hago un create () para persistir una instancia de esta entidad, veo lo siguiente en mis registros (cosas no relacionadas editadas):

05 15: 15: 26.948 org.hibernate.id.enhanced.SequenceStructure [DEBUG] - Valor de secuencia obtenido: 1604

05 15: 15: 26.948 org.hibernate.event.def.AbstractSaveEventListener [DEBUG] - identificador generado: 1554, usando la estrategia: org.hibernate.id.enhanced.SequenceStyleGenerator

Las siguientes instrucciones de inserción de SQL se refieren al valor 1554, no a lo quedebería estar usando, 1604 (basado en el valor devuelto por SequenceStructure. ¿De dónde obtuvo Hibernate 1554?

Me parece que Hibernate tiene un error aquí: SequenceStructure conoce el siguiente valor correcto, pero no se está utilizando. ¿Alguna idea de cómo resolver esto?

FYI: soy consciente deesta página, que dice usar GenerationType.AUTO porque "la gente de Hibernate lo arruinó por completo", pero no hay mucho más allá de esa declaración no muy útil.

Respuestas a la pregunta(1)

Su respuesta a la pregunta