[英]@Cascade Delete not working (JPA, Hibernate and Spring mvc)
[英]Save bag on cascade using Hibernate and Spring MVC
我有以下家長班
public class Parent {
private Integer id;
private List<Child> detail = ShrinkableLazyList.decorate(
new ArrayList<Child>(),
FactoryUtils.instantiateFactory(Child.class));
與之對應的HBM如下:
<class name="Parent" table="parents">
<id name="id">
<generator class="increment"></generator>
</id>
<bag name="detail" cascade="all-delete-orphan">
<key column="parentId" not-null="true" />
<one-to-many class="Child" />
</bag>
</class>
在我的JSP編輯表單中,我列出了以下詳細信息:
<c:forEach items="${ parent.detail }" var="child" varStatus="status">
<tr class="detail">
<td>
<input name="detail[${ status.count }].id" type="hidden" value="${ child.id }">
<input name="detail[${ status.count }].account" type="hidden" value="${ child.account.id }"><span>${ child.account }</span>
</td>
</tr>
</c:forEach>
但是,當我嘗試在父對象上執行update()
時,出現以下錯誤:
identifier of an instance of Child was altered from 20 to 19; nested exception is org.hibernate.HibernateException: identifier of an instance of Child was altered from 20 to 19
這是我的DAO代碼
@Override
public void update (Parent parent) {
hibernateTemplate.update(parent);
}
任何想法? 謝謝
status.count
是從1開始而不是從0開始的問題,這將導致分配的值具有偏移的索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.