Oracle
 sql >> база данни >  >> RDS >> Oracle

Hibernate не можа да извлече SequenceInformation от базата данни

Реших проблема по следния начин. Създадено разширение за Oracle12cDialect. Ограничена максималната/минималната стойност на колоните до 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";
    }

}

Във файла application.properties се отнася за изпълнение на диалект

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

Можете да пресъздадете поредици, като ограничите минималните и максималните стойности. В моя случай не мога да го направя. Първичните ключове, които използвам, имат размерността Номер (12), която попада в границата на диапазона от -9223372036854775807 до 9223372036854775808 с голям марж



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. променете размера на типа данни в sql

  2. Предайте списък с цели числа от C# в съхранената процедура на Oracle

  3. Защо Mysql's Group By и Oracle's Group по поведение са различни

  4. Пример за автономна транзакция на Oracle

  5. лоша производителност при избор на хибернация в сравнение с директното изпълнение - как да отстраните грешки?