При изменении записи в БД с помощью html-формы до БД не доходя изменения

Логика такая - в таблицу на html странице выводятся записи из БД, определенная запись берется методом getUser и выводится на HTML страничку с формами, в которых можно задать новые значения для полей, все это дело должна обратно отправлять в БД кнопка update. Но изменения не доходят до БД, я получаю неизмененную таблицу. При этом, судя по логам гибернейта, отдельная запись сначала вытаскивается, но при нажатии кнопки update ничего не происходит и просто выводится вся таблица

Контроллер для GET-запроса:

    @GetMapping(value = "/users/get/{id}")
    public ModelAndView getUser(@PathVariable long id) {
        ModelAndView modelAndView = new ModelAndView("users/get");
        modelAndView.addObject("getUser", userService.getUser(id));
        return modelAndView;
    }

Контроллер для запроса на сохранение:

    @PostMapping(value = "/users/update")
    public ModelAndView updateUser(@ModelAttribute User user) {
        ModelAndView modelAndView = new ModelAndView("redirect:/users/");
        modelAndView.addObject("updateUser", user);
        return modelAndView;
    }

HTML-код страницы с формой для изменения пользователей:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:form="http://www.w3.org/1999/html">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Update user</title>
</head>
<body>

    <form action="#" th:action="@{../update/} " th:object="${getUser}" method="post">
        <label for="firstName" >Name</label>
        <input type="text" th:field="*{firstName}" id="firstName" placeholder="Name">
        <label for="lastName">Last Name</label>
        <input type="text" th:field="*{lastName}" id="lastName" placeholder="Last Name">
        <label for="email" class="col-form-label">eMail</label>
        <input type="text" th:field="*{email}" id="email" placeholder="eMail">
        <label for="phoneNo" >Phone No</label>
        <input type="text" th:field="*{telephone}" id="phoneNo" placeholder="phoneNo">
        <input type="submit" value="Update">
    </form>
</body>
</html>

Ответы (3 шт):

Автор решения: Tariel

Проверь это значение th:action="${getUser}" Ты пытаешься метод POST смапить на GET controller.

→ Ссылка
Автор решения: DmitryD

В th:action нужно связать с котроллером Post запроса и убрать ссылку из кнопки.

<form:form action="#" th:action="@{/users/update}" th:object="${getUser}" method="post">
...
<div>
    <input type="submit" value="Update"> // убрать ссылку
</div>

Пример которого было бы достаточно.

Уберите /get/ и /update/ из контроллеров. И почитайте про правила REST архитектуры, сделайте упор на том, как правильно давать URL-ы контроллерам.

→ Ссылка
Автор решения: Алексей Гумилев

Всем спасибо за ответы! Вопрос решился изменением контроллера, код прилагаю

    @PostMapping(value = "/users/update/{id}")
    public String updateUser(@PathVariable long id, User user) {
        user.setId(id);
        userService.updateUser(user);
        return "redirect:/users/";
    }
→ Ссылка