Saya memecahkan masalah sebagai berikut. Membuat ekstensi untuk Oracle12cDialect. Batasi nilai maksimum/minimum kolom ke SQL
package ru.mvawork.hibernate;
import org.hibernate.dialect.Oracle12cDialect;
@SuppressWarnings("unused")
public class CustomOracleDialect extends Oracle12cDialect {
@Override
public String getQuerySequencesString() {
return "select SEQUENCE_OWNER, SEQUENCE_NAME, greatest(MIN_VALUE, -9223372036854775807) MIN_VALUE,\n"+
"Least(MAX_VALUE, 9223372036854775808) MAX_VALUE, INCREMENT_BY, CYCLE_FLAG, ORDER_FLAG, CACHE_SIZE,\n"+
"Least(greatest(LAST_NUMBER, -9223372036854775807), 9223372036854775808) LAST_NUMBER,\n"+
"PARTITION_COUNT, SESSION_FLAG, KEEP_VALUE\n"+
"from all_sequences";
}
}
Dalam file application.properties mengacu pada implementasi dialek
spring.jpa.properties.hibernate.dialect=ru.mvawork.hibernate.CustomOracleDialect
Anda dapat membuat ulang urutan dengan membatasi nilai minimum dan maksimum. Dalam kasus saya, saya tidak bisa melakukannya. Kunci utama yang saya gunakan memiliki dimensi Nomor (12), yang berada dalam batas rentang dari -9223372036854775807 hingga 9223372036854775808 dengan margin yang besar