sql >> Databáze >  >> RDS >> Oracle

Hibernate nemohl načíst SequenceInformation z databáze

Problém jsem vyřešil následovně. Vytvořeno rozšíření pro Oracle12cDialect. Omezena maximální/minimální hodnota sloupců na 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";
    }

}

V souboru application.properties se odkazuje na implementaci dialektu

spring.jpa.properties.hibernate.dialect=ru.mvawork.hibernate.CustomOracleDialect

Sekvence můžete znovu vytvořit omezením minimální a maximální hodnoty. V mém případě to nedokážu. Primární klíče, které používám, mají rozměr číslo (12), který spadá do limitu rozsahu od -9223372036854775807 do 9223372036854775808 s velkou rezervou



  1. Manipulace s daty osiva v online patchování R12.2

  2. Oracle IN vs Existuje rozdíl?

  3. uložit dlouhou hodnotu v databázi Android

  4. Jak mohu vytvořit omezení pro kontrolu, zda je e-mail platný v postgresu?