He configurado hibernate para usar la secuencia de Oracle. La secuencia se crea con caché = 20, incremento = 1.Hibernar con la secuencia de Oracle no lo usa
Todo funciona bien, hibernar entidades persistentes. El valor de identificación es extraño: 50,51 .... 76,201,202 ... 209,1008,1009,5129,5130 ....
Si solicito el valor de secuencia (seleccione hibernate_sequence.nextval de dual) me sale valor como 2,3,4 ....
Si activo hibernate sql debug, hay que llamar de vez en cuando "seleccionar hibernate_sequence.nextval from dual" pero el número asignado por hibernate a ID no se retransmite en la secuencia !
@Id
@Column(name = "ID", insertable = false, updatable = false)
@SequenceGenerator(name = "SequenceIdGenerator", sequenceName = "HIBERNATE_SEQUENCE")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SequenceIdGenerator")
private Long id;
No necesita aumentar en 50 cada vez. Eso es solo lo predeterminado. Use @SequenceGenerator (name = "SEQ_ID", sequenceName = "SEQ_ID", allocationSize = 1) Para incrementar en solo uno. allocationSize es la clave. – dseibert
¿Hay alguna forma de no usar esto? Dado que es un gran problema para mí, tengo otros factores desencadenantes que usan esta misma secuencia para esta tabla. Entonces podrían golpear este número en el futuro, ¿verdad? –
Mira el comentario justo arriba del tuyo. Use allocationSize. –