我用百里香创建了一个表格来更新图书信息。 作者和书有@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>
答案 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>
进一步阅读:-
,并且您还必须更改cascadeType.ALL 如果使用@OneToMany,请使用orphanRemoval = true