Problem rozwiązałem w następujący sposób. Utworzono rozszerzenie dla Oracle12cDialect. Ograniczono maksymalną/minimalną wartość kolumn do 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";
}
}
W pliku application.properties odniesiono się do implementacji dialektu
spring.jpa.properties.hibernate.dialect=ru.mvawork.hibernate.CustomOracleDialect
Możesz odtworzyć sekwencje, ograniczając wartości minimalne i maksymalne. W moim przypadku nie mogę tego zrobić. Klucze podstawowe, których używam, mają wymiar Number (12), który mieści się w zakresie od -9223372036854775807 do 9223372036854775808 z dużym marginesem