Thymeleaf:如何修复更新@ManyToMany表

时间:2019-06-19 17:32:52

标签: spring-boot spring-mvc jpa thymeleaf

我用百里香创建了一个表格来更新图书信息。 作者和书有@ManyToMany关系。问题是,当我保存更改时,@ManytoMany表(Book_Authors)行将被删除。

  

我不是要更改已编辑书籍的作者价值,我只是想   保留旧的。

     

我尝试将每个作者ID保存为“输入类型=“隐藏””,因为   这用于保存@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 个答案:

答案 0 :(得分:0)

<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/I-have-problem-in-binding-the-list-of-objects-contained-inside-a-object-on-the-form-using-thymeleaf-td3525038.html

,并且您还必须更改cascadeType.ALL 如果使用@OneToMany,请使用orphanRemoval = true