PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

JPA 2 @SequenceGenerator @GeneratedValue erzeugt eine eindeutige Einschränkungsverletzung

  1. Ja, Ihre Analyse ist richtig. Sie haben das Problem richtig identifiziert (wir hatten ein ähnliches Problem). Und ... wenn Sie das in Produktion nehmen, vergessen Sie nicht:

    • Erzeuge entweder manuell die Sequenztabelle für den neuen Sequenzgenerator MIT dem korrekten Anfangswert/der Anfangs-ID (ansonsten beginnt der Ruhezustand bei 1 und du bekommst wieder )
    • oder setzen Sie diesen Wert in Code (überprüfen Sie initalValue in @SequenceGenerator ).
  2. Ich kann die Best Practices nicht aufzählen, aber ich nehme an, Sie könnten die Grenze von 50 senken. Außerdem habe ich keine Erfahrung mit PostgreSQL, aber in MySQL haben Sie eine einfache Tabelle für die seq. Generator und Hibernate macht das ganze Zeug.