Хобрук: Ваш путь к мастерству в программировании

Thymeleaf: как исправить обновление таблицы @ManyToMany

Я создал форму, используя тимелеаф для обновления информации о книгах. Авторы и книга имеют отношение @ManyToMany. Проблема в том, что когда я сохраняю свои изменения, строка таблицы @ManytoMany (Book_Authors) удаляется.

Я не пытаюсь изменить значения авторов для редактируемой книги, я просто хочу сохранить старые.

Я попытался сохранить каждый идентификатор автора в типе ввода = «скрытый», так как это работало для сохранения значений для отношения @OneToMany, например «ИЗДАТЕЛЬ».

Это работает (старое значение издателя сохраняется в базе данных):

<div class="form-group">
  <label class="col-lg-3 control-label">Publisher:</label>
  <div class="col-md-8">
   <input type="hidden" th:field="*{publisher.id}" />
   <input class="form-control" type="text" value="" th:field=" 
                                 {publisher.name}">
  </div>
 </div>

Это не работает:

<div th:each = "author : ${authors}">
       <input type="hidden" th:field="*{author.id}" /> 
 </div>

Ответы:


1

<tr th:each="vehicle, itemStat : ${form.vehicles}"> <td> <input hidden th:name="|vehicles[${itemStat.index}].id|" th:value="${vehicle.getId()}"/> </td> <td> <input th:name="|vehicles[${itemStat.index}].brand|" th:value="${vehicle.getBrand()}"/> </td> <td> <input th:name="|vehicles[${itemStat.index}].price|" th:value="${vehicle.getPrice()}"/> </td> </tr>

дальнейшее чтение : -

  1. https://www.baeldung.com/thymeleaf-list
  2. http://forum.thymeleaf.org/Уменя-есть-проблема-в-связывании-списка-объектов-содержащегося-внутри-а-объекта-на-форме-использования-тимелеафа-td3525038.html

а также вам нужно изменить cascadeType.ALL, если вы используете @OneToMany, используйте orphanRemoval = true

12.01.2020
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..