Seperti yang saya sebutkan di pembaruan ke-3 saya, JPA "mengambil 50 id" dari urutan di depan dan menghitungnya dalam memori untuk efisiensi.
Perilaku ini ditentukan oleh javax.persistence.SequenceGenerator.allocationSize
yang defaultnya adalah 50.
Ini sama sekali tidak intuitif bagi saya, atau lainnya , karena urutan database Oracle saya seharusnya mendefinisikan perilaku ini dan 50 bukan default standar di sana.
Solusi cepat dan kotor adalah dengan menentukan allocationSize=1
:
@SequenceGenerator(name = "generator", sequenceName = "MY_SEQ",
allocationSize = 1)
Sekarang urutan Oracle bertambah untuk setiap sisipan.