Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 12.02.2019
Сообщений: 26

Как изменить запись в таблице через Thymeleaf ?

05.12.2021, 10:19. Показов 2354. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пытаюсь создать CRUD-приложение на java, с использованием Hibernate, Spring, HTML и Thymeleaf.
Приложение добавляет, удаляет, но никак не могу решить задачу с изменением объекта в таблице MySQL.
После изменения в форме, при попытке вернуться на дефолтную страницу в браузере выходит следующая ошибка:

Type Exception Report

Message Request processing failed; nested exception is org.springframework.orm.hibernate5.Hiber nateOptimisticLockingFailureException: Object of class [testfilms.model.Film] with identifier [0]: optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [testfilms.model.Film#0]

Description The server encountered an unexpected condition that prevented it from fulfilling the request.


Кто-нибудь, подскажите пожалуйста: Что не так в моем коде?

Это мои контроллеры для редактирования полей сущности.

Java
1
2
3
4
5
6
7
8
9
10
11
12
@GetMapping("/edit/{id}")
    public String editPage(Model model, @PathVariable("id") int id) {
        model.addAttribute("film", new Film());
        return "edit_films";
    }
 
    @PostMapping("/edit")
    public String editFilm(@ModelAttribute("film") Film film) {
        System.out.println(film);
        filmService.edit(film);
        return "redirect:/";
    }
Мой HTML:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form th:method="POST" th:action="@{/edit}" th:object="${film}">
 
 
    <label>Title:</label>
    <input type="text" th:field="*{title}" placeholder="title" />
    <label>Year:</label>
    <input type="text" th:field="*{year}" placeholder="year" />
    <label>Genre:</label>
    <input type="text" th:field="*{genre}" placeholder="genre" />
    <label>Watched:</label>
    <input type="text" th:field="*{watched}" placeholder="watched" />
 
 
    <input type="submit" value="Edit film">
 
 
</form>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2021, 10:19
Ответы с готовыми решениями:

Linq Entities: как изменить запись в таблице
здравствуйте. Битый час уже вожусь в попытках изменить запись в таблице, но все четно. За примером обратился сюда, но у меня не...

Как в таблице через ВБ изменить сразу все строки?
Здрасти. Такой вопрос, для редактирования базы подключился к ней удаленно через MySQL Workbench, в нем открывается таблица которую я могу...

Как добавить, удалить запись в таблице через VBA?
Есть кнопка &quot;Запись&quot; на форме. При нажатии на кнопку выводится сообщение &quot;Добавить/Удалить&quot; запись в таблицу. При нажатии...

2
 Аватар для StepFather322
365 / 252 / 113
Регистрация: 07.10.2017
Сообщений: 1,330
05.12.2021, 15:35
Цитата Сообщение от a_universal Посмотреть сообщение
filmService.edit(film);
метод покажи, зачем нам твои контроллеры
0
1 / 1 / 0
Регистрация: 12.02.2019
Сообщений: 26
05.12.2021, 16:25  [ТС]
Кстати, я уже разобрался. И спасибо за ответ.
Проблема была в Айдишнике, без которого ну никак данные не хотели изменяться.
Как только я добавил "самопальное" поле tempId - и сразу все заработало!

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private FilmService filmService;
private int tempId;
 
@GetMapping("/edit/{id}")
    public String editPage(Model model, @PathVariable("id") int id) {
        tempId = id;
        model.addAttribute("film", new Film());
        return "edit_films";
    }
 
    @PostMapping("/edit")
    public String editFilm(@ModelAttribute("film") Film film) {
        film.setId(tempId);
        filmService.edit(film);
        return "redirect:/";
    }
В методе все было правильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2021, 16:25
Помогаю со студенческими работами здесь

Как изменить значение одной ячейки в объединенной через RIGHT JOIN таблице?
Доброго времени суток. Есть необходимость запросом изменить значение одной ячейки с пустой в какой-то текст. Есть ли какие идеи?

Как изменить строку подключения к связанной таблице в Аксесс через Excel
Суть вопроса: Имеется база данных в аксесс. В ней есть связанная таблица, которая берет данные из текстового файла, по определенному...

Как через CSS изменить толщину границ ячеек в таблице QTableView?
Здравствуйте. Использую программу от сименса (WinCC OA), которая построена на Qt. Напрямую, с библиотекой Qt в ней работать нельзя, но...

Изменить запись в таблице
Есть таблица users: $query = &quot;CREATE TABLE users ( id_msg int(8) NOT NULL auto_increment, nik tinytext, pass tinytext, ...

Изменить запись в таблице по условию
Задача, наверняка, простейшая. Только уровень моих знаний мускула &quot;сварщик 6 разряда&quot;. Таблица из двух столбцов: имя, телефон. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru