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.