Wenn Sie eine bigserial
erstellen Spalte in Postgresql, erstellen tatsächlich eine Sequenz . Wenn Sie manuell einen ID-Wert von „1“ eingefügt haben, hat Postgresql die Sequenz nicht aktualisiert, um dies zu berücksichtigen. Hibernate lässt Postgresql die Sequenz verwenden, um die ID zu generieren, aber der erste erzeugte Wert ist „1“, was kollidiert. Der zweite Wert ist in Ordnung.
Wenn Sie das Problem verursacht haben, indem Sie hinter Hibernate gegangen sind und SQL direkt verwendet haben, sollten Sie es auf die gleiche Weise beheben:verwenden Sie ALTER SEQUENCE
um den nächsten Wert einzustellen
:
alter sequence basedesign_id_seq restart with 2;