Я бы проверил, существует ли пользователь в таблице с тем же именем пользователя (я думаю, что ваш "логин" совпадает с именем пользователя для пользователя), прежде чем делать какие-либо постоянные транзакции для нового пользователя, если имя пользователя уже существует в таблице, просто неидите вперед и выполните новую логику регистрации пользователей и позвольте контроллеру формы вернуть представление с объектом Model с дублированным атрибутом имени пользователя, возвращенным методом service (вы можете использовать исключения в методах service для лучшей логики)
@RequestMapping("/registerNewUser")
public String showModel(@ModelAttribute UserDataTransferObject userDTO, Model model){
String existedUsername = service.createUser(userDTO);
if(existedUsername != null){
model.addAttribute("existedUsername",existedUsername);
}
return "registrationstatus";
}
createUserМетод проверяет, содержит ли репозиторий запись с тем же именем пользователя, и если да, возвращает это имя пользователя в виде строки (Простая реализация).
в тимелеф:
<div th:if="${existedUsername != null}" class="alert alert-danger notification" role="alert">
<p th:text="${existedUsername}"></p><p> already exists</p>
</div>