Мы используем dspace 3.2 и добавили собственный класс проверки подлинности. Этот класс аутентификации вызывается всякий раз, когда сеанс генерируется первым пользователем. Внутри кода мы ищем пользователя и добавляем его в группу, если они не принадлежат к этой группе.dspace duplicate rows in epersongroup2eperson
EPerson eperson = EPerson.findByEmail(context, email);
if (eperson != null) {
for (Group group : Group.findAll(context, Group.ID)) {
if (!group.isMember(eperson)) {
group.addMember(eperson);
group.update();
context.commit();
}
}
}
Проблема возникает, когда одновременно выполняется несколько сеансов и добавление этого лица в группу. Это вызывает идентичное вхождение строки в таблице epersongroup2eperson
dspace=> select * from epersongroup2eperson;
id | eperson_group_id | eperson_id
-----+------------------+------------
1 | 3 | 10
2 | 3 | 10
Это известная ошибка в DSpace?