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

hibernate oracle последователността произвежда голяма празнина

Мисля, че проблемът идва от факта, че генераторът на последователности всъщност не е генератор на последователности, а генератор на последователност hilo, с размер на разпределение по подразбиране от 50. както е посочено в документацията:http://docs.jboss.org/ hibernate/stable/annotations/reference/en/html_single/#entity-mapping-identifier

Това означава, че ако стойността на последователността е 5000, следващата генерирана стойност ще бъде 5000 * 50 =250000. Добавете стойността на кеша на последователността към уравнението и това може да обясни огромната ви първоначална празнина.

Проверете стойността на последователността. Трябва да е по-малко от последния генериран идентификатор. Внимавайте да не инициализирате повторно последователността до тази последна генерирана стойност + 1, защото генерираната стойност ще нарасне експоненциално (имахме този проблем и имахме отрицателни цели числа поради препълване)



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

  2. Как да създадете PL/SQL съхранени процедури без параметри в базата данни на Oracle

  3. java.sql.SQLException:I/O грешка:нулиране на връзката в linux сървър

  4. 4 начина за вмъкване на няколко реда в Oracle

  5. SELECT SUM връща ред, когато няма записи