На уровне интерфейса это нереально. Заблокировать web интерфейс? Пользователь обновит страницу и повторит.
Пользователь не дожидаясь ответа обновляет страницу и снова создает объект. Получается уже две транзакции в очереди. По итогу когда очередь доходит до выполнения имеем в базе два одинаковых объекта (созданных вплоть до ms) что ломает логику программы.
Пробовал просто скопировать все таблицы в один файл и сделать удаление дубликатов, не вышло, т.к. он половину удалил не то, что нужно.
Откуда берутся эти дополнительные данные?