Thymeleaf - Проверьте, если свойство уже существует - PullRequest
0 голосов
/ 20 сентября 2019

По сути, мой вопрос очень прост, у меня есть форма регистрации с ограничением на поле «логин».

Table(uniqueConstraints=@UniqueConstraint(columnNames = { "login" }))

Итак, когда я добавляю логин, который уже существует, появляется исключение: Дублирующая запись 'MyLogin' для ключа 'UKew1hvam8uwaknuaellwhqchhb' .

Я спрашиваю, есть ли способ в тимелине просто показать сообщение о том, что имя уже существует.

1 Ответ

1 голос
/ 20 сентября 2019

Я бы проверил, существует ли пользователь в таблице с тем же именем пользователя (я думаю, что ваш "логин" совпадает с именем пользователя для пользователя), прежде чем делать какие-либо постоянные транзакции для нового пользователя, если имя пользователя уже существует в таблице, просто неидите вперед и выполните новую логику регистрации пользователей и позвольте контроллеру формы вернуть представление с объектом 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...