Добрый день!
Как отметил коллега
Dmitry Roo :
Вообще мне кажется у вас архитектурно не очень придумано.
Лучше бы сделать отдельно пользователей и отдельно роли.
В данном случае я соглашусь с ним. Лучше конечно же просто иметь сущность User, но при этом завести enum Role (например, candidate_trainer, trainer). А дальше при нажатии на кнопку в админке просто заменяете роль пользователя с candidate_trainer -> trainer и все.
Возможно, что есть причины, из-за которых вы решили разделить данные сущности. Тогда просто удаляете старую запись и создаете новую.
Например,
при клике берем Id кандидата.
Находим его по id.
Создаем новую сущность (можно даже написать некий
Converter<S, T>
)
Сохраняем новую запись
Удаляем старую запись