Значение параметра [vbs@gmail.com] не соответствует ожидаемому типу [java.lang.Long (n / a)];Вложенным исключением является java.lang.IllegalArgumentException: - PullRequest
0 голосов
/ 28 октября 2019

Класс UserController.java Если я удаляю «required = false», ошибка остается прежней.

@RequestMapping(value= "/login", method = RequestMethod.POST)
public String login(@RequestParam(value= "email", required = false) String email, @RequestParam(value= "password", required = false) String password, ModelMap modelmap) {
    User user = userrepository.getEmailById(email);
    if(user.getPassword().equals(password))
        return "findFlights";
}

Класс UserRepository.java

public interface UserRepository extends JpaRepository<User, Long> {
    User getEmailById(String email);
}

login.jsp



Email: 
Password: 

${msg}

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Проблема, похоже, не в реализации вашего контроллера. Кажется, исключение выдается реализацией UserRepository, когда ваш вызов БД ожидает длинную, но вы отправляете строку.

0 голосов
/ 28 октября 2019

При просмотре данных, которыми вы поделились, есть 2 возможных случая

  • , если у вашей пользовательской сущности есть столбец ID в виде строки, и в этом случае это может быть адрес электронной почты, тогда ваш репозиторий должен быть

JpaRepository<User,String>

  • если у вашего объекта пользователя есть столбец идентификатора, то как вы пытаетесь сопоставить строковый идентификатор электронной почты со столбцом длинного идентификатора.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...