Caused by: org.hibernate.HibernateException: More than one row with the given identifier was found: a9d3e53c-efe2-4945-a034-f2d045fe6cce, for class: com.***.model.User
И я просматриваю свою базу данных, нахожу повторяющиеся данные. что случилось? почему существуют два пользователя с одинаковым идентификатором?
---------------------+--------------------------+-----------+----------+---------
id | uuid | | not null |
blocked | boolean | | not null |
is_admin | boolean | | |
is_root | boolean | | |
last_login_at | timestamp with time zone | | |
nick_name | text | | |
pass_word | character varying(255) | | |
register_at | timestamp with time zone | | |
user_name | character varying(255) | | |
app_image | text | | |
avatar | text | | |
birth_day | text | | |
city | text | | |
front_blocked | boolean | | |
gender | smallint | | |
intro | text | | |
is_vest | boolean | | |
phone | text | | |
web_image | text | | |
wrap_vest | boolean | | |
wx_mini_app_open_id | text | | |
wx_open_id | text | | |
wx_union_id | text | | |
Indexes:
"user_pkey" PRIMARY KEY, btree (id)
"uk_589idila9li6a4arw1t8ht1gx" UNIQUE CONSTRAINT, btree (phone)
"uk__user__phone" UNIQUE CONSTRAINT, btree (phone)
"uk__user__wx_union_id" UNIQUE CONSTRAINT, btree (wx_union_id)
"uk_lqjrcobrh9jc8wpcar64q1bfh" UNIQUE CONSTRAINT, btree (user_name)
Referenced by:
TABLE "role" CONSTRAINT "fkahi3iro2tsdvjif5c499jg8rv" FOREIGN KEY (created_by_id) REFERENCES "user"(id)
TABLE "role_users" CONSTRAINT "fkarktlgi8f51hau76pfku4noat" FOREIGN KEY (user_id) REFERENCES "user"(id)
TABLE "exception" CONSTRAINT "fkkd502yhn3ji8bqecwd4yax0gk" FOREIGN KEY (user_id) REFERENCES "user"(id)
TABLE "version_management" CONSTRAINT "fktd43egsseixxvg2j59irwunid" FOREIGN KEY (created_by_id) REFERENCES "user"(id)
=# select id, count(*) from "user" group by id;
id | count
--------------------------------------+-------
062e8528-0b6c-465c-b883-ac513ad41442 | 1
122881d5-9d28-49b9-b488-61575e41b4e7 | 1
f3603aa6-76bc-431f-81a4-e06d4c0bfad2 | 1
93102a40-a82f-4e6e-8a7a-ecbf9f9c2b29 | 1
2b5d9bd7-222d-4e44-9897-159726c533c0 | 1
bf91105d-bbfc-4dbe-93d6-b580e13100b8 | 1
f7a6c129-5df1-41e8-8847-99c553a701fa | 1
a9d3e53c-efe2-4945-a034-f2d045fe6cce | 2
507873de-fc12-4bd1-bf93-a2ded7ac8d88 | 1
29646dd8-ffc7-4fff-a708-e3f3bef64b28 | 1
Вы должны столкнуться с повреждением данных.
Вам придется сделать дамп базы данных и восстановить ее во вновь созданный кластер PostgreSQL, а также удалить дубликаты вручную.
Тогда вам лучше выяснить, что могло вызвать проблему. Были ли недавние аварии? Аппаратное обеспечение (диск, память) в порядке? Вы восстанавливали из резервной копии или активировали резервный сервер? Также может быть полезно найти последнюю резервную копию, в которой нет поврежденных данных, и повторить, что вы изменили с тех пор.
спасибо, теперь это работает после того, как я удалил и создал базу данных. Я предполагаю, что проблема может быть вызвана масштабированием облачного сервера.
Разве первичный ключ не должен определяться таким образом - "id" PRIMARY KEY, btree (id)?