Страница с ошибкой белой метки Произошла неожиданная ошибка (тип=Внутренняя ошибка сервера, статус=500). нулевой идентификатор

#sql #spring #view #model #null

Вопрос:

Я пытаюсь выполнить программу практической загрузки Spring с помощью JpaRepository. У меня есть код для веб-приложения, которое позволяет пользователям регистрироваться. Пользователь регистрируется и добавляет учетные данные для входа в базу данных. У меня есть еще одна веб-страница, на которой вы можете обновить информацию об адресе пользователя. Проблема в том, что при обновлении адреса пользователя веб-обозреватели показывают

Страница с ошибкой белой Метки:

 This application has no explicit mapping for /error, so you are seeing this as a fallback.

Tue Jun 08 12:13:08 EDT 2021
There was an unexpected error (type=Internal Server Error, status=500).
null identifier
 

У меня есть код, отображаемый здесь.

https://github.com/jkirkish/Assignment13.git

Любая помощь в устранении ошибки в веб-браузере, когда я обновляю адресную информацию после нажатия кнопки обновления, была бы полезна.

Ответ №1:

  1. Первая проблема — Вы не указали действие в users.html :
 <div th:if="${#lists.size(users) == 1}">
    <form action="" method="post">
 

Эту строку следует заменить на :

 <form th:action="@{/users/{userId}(userId=${user.userId})}" method="post">
 
  1. Вторая проблема, которую я вижу, связана с Address Сущностью. Попробуйте исправить ниже:
  • Добавление стратегии в Id поле (идентификатор пользователя)
  • Удалите @MapsId аннотацию.
 @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getUserId() {
    return userId;
}


@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "user_id")
public User getUser() {
    return user;
}
 

Комментарии:

1. Я помещу эту строку кода в действие формы и посмотрю, каковы будут результаты.

2. хорошо, я изменил код в HTML-файле пользователя на то, что было указано выше

3. это ошибка, которую я получаю: 021-06-08 21:28:22.192 ОШИБКА 20736 — — — [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[DispatcherServlet] : Servlet.service() для сервлета [DispatcherServlet] в контексте с путем [] выдал исключение [Ошибка обработки запроса; вложенным исключением является org.hibernate. AssertionFailure: нулевой идентификатор] с основной причиной

4. Если я попытаюсь обновить адрес пользователя с user.html просмотр Я получаю ту же самую внутреннюю ошибку сервера белой страницы. Если я использую MySQL WorkBench для перехода к базе данных с пользователями и адресами. Я могу вставить туда адресную информацию без проблем. Затем я перезапускаю свое приложение и вижу его всплывающее окно на user.html просматривайте и редактируйте его просто отлично.

5. Консоль java выводит строки кода, в которых отображается ошибка при обработке приложения. Я скопировал и вставил трассировку strack в файл README в репозитории Github. Я читал, что я получаю организацию.спящий режим. AssertionFailure: нулевой идентификатор. Не уверен, где это происходит в коде. Или почему это происходит, или как это исправить.