簡體   English   中英

使用Hibernate和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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM