bigserial
を作成するとき Postgresqlの列では、実際にシーケンスを作成しています 。 「1」のID値を手動で挿入した場合、Postgresqlはこれを考慮してシーケンスを更新しませんでした。 HibernateはPostgresqlにシーケンスを使用してIDを生成させますが、生成される最初の値は「1」であり、衝突します。 2番目の値は問題ありません。
Hibernateの背後にあり、SQLを直接使用して問題を作成した場合は、同じ方法で修正する必要があります。 ALTER SEQUENCE
を使用します 次の値を設定するには
:
alter sequence basedesign_id_seq restart with 2;