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

Hibernate oracle sekvence produkuje velkou mezeru

Myslím, že problém pochází ze skutečnosti, že generátor sekvencí ve skutečnosti není generátor sekvencí, ale generátor sekvenčních hilo s výchozí velikostí alokace 50. jak je uvedeno v dokumentaci:http://docs.jboss.org/ hibernate/stable/annotations/reference/en/html_single/#entity-mapping-identifier

To znamená, že pokud je hodnota sekvence 5000, další vygenerovaná hodnota bude 5000 * 50 =250000. Přidejte do rovnice hodnotu mezipaměti sekvence a mohlo by to vysvětlit vaši obrovskou počáteční mezeru.

Zkontrolujte hodnotu sekvence. Měl by být menší než poslední vygenerovaný identifikátor. Dávejte pozor, abyste znovu neinicializovali sekvenci na tuto poslední vygenerovanou hodnotu + 1, protože vygenerovaná hodnota by exponenciálně rostla (máme tento problém a měli jsme záporná celá čísla kvůli přetečení)



  1. Závažná chyba:operátor [] není pro řetězce podporován

  2. oracle -- Rozdělte více hodnot oddělených čárkou v tabulce Oracle na více řádků

  3. Jak získat velikost databáze MySQL pro vaši databázi?

  4. Základní příkazy pro správu databáze MySQL – část I