我正在使用带有CrudRepository的JPA。我在客户和账单之间存在着一种关系。客户逐渐收到我想分配给客户的账单。
<div class="col-lg-3">
<select name="customers" class="form-control m-bot15" required="">
<option value="">*** Bitte auswählen ***</option>
<option th:each="customer : ${customers}" th:value="${customer.customerID}" th:text="${customer.name}"></option>
</select>
</div>
我在表单中使用此代码段来显示客户并通过引用其名称来插入ID。
现在我有一个很多关系,因此我有一个对象。有了这个,我无法设置ID。
@ManyToOne(cascade = CascadeType.ALL)
private Customers customers;
答案 0 :(得分:0)
我相信你在弹簧数据中没有任何处理多对一关系的问题。如果这样做,您可以参考link中的解决方案。
让我们讨论如何分配Id并根据下拉列表中的用户选择传递给控制器。
我的VO代码。 注意:请勿使用诸如int或long之类的原始数据类型。如果用户未选择任何内容,则返回分配空值将对百万美元造成麻烦。
private Long selectedCustomerId;
private Set<Customer> customerSet=new HashSet<Customer>();
Thymeleaf代码。根据用户选择,百万美元将customerid分配给VO的 selectedCustomerId 属性
<select id="customer-title" name="customer-title" th:field="*{selectedCustomerId}" th:required="required" class="form-control">
<option value="" th:text="-Select-"></option>
<option th:each="temp : *{customerSet}"
th:value="${temp.customerId}"
th:text="${temp.customerName}">
</option>
</select>
下拉列表和onload表格的Onchange事件,您可以通过javascript将下拉列表中的选定值设置为隐藏输入字段,反之亦然。
<input id="customer-id" name="customer-id" type="hidden" th:field="*{selectedCustomerId}"/>
....
<select id="customer-title" name="customer-title" th:required="required" class="form-control">
<option value="" th:text="-Select-"></option>
<option th:each="temp : *{customerSet}"
th:value="${temp.customerId}"
th:text="${temp.customerName}">
</option>
</select>