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

Елементът на initialValue на @TableGenerator не се поддържа ли в Hibernate JPA?

Какво става с това, че първата стойност е 1 вместо 1001, това е грешка в Hibernate HHH-4228 , със състояние Няма да се коригира . Правилната първа стойност във вашия случай е 1001 вместо 1000, защото initialValue инициализира колона, която съхранява последно върната стойност (а не следващата стойност, която трябва да бъде върната).

Използването на следното в persistence.xml (както също е предложено в доклада за грешка) ще коригира проблема с първата стойност:

<property name="hibernate.id.new_generator_mappings" value="true"/>

Значение на allocationSize вероятно е погрешно разбран въпросът. Не е стъпка към нарастване. Това означава колко стойности се разпределят с една заявка към базата данни от таблицата. Това е по-скоро оптимизация, за да се избегне допълнителна заявка всеки път, когато е необходима id стойност за нов обект.

Страничен продукт е, че рестартирането на приложението често причинява дупки в последователността:

  1. initialValue =1000,allocationSize =100
  2. Използвайте стойност 1001 (=> стойността във valueColumn се актуализира до 1100).
  3. изключване и стартиране на приложението
  4. следващата стойност ще бъде 1101, а не 1002.



  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. Как да оптимизираме ORDER BY за изчислена колона в МАСИВНА MySQL таблица

  3. Как да копирам csv файл с данни в Amazon RedShift?

  4. Има ли разлика в производителността между BETWEEN и IN с MySQL или в SQL като цяло?

  5. Възможно ли е да стартирате априорно правило за асоцииране в изявлението на mysql?