2011-12-05 64 views
0

我在產品&包之間有父子關係(一對多)關係。一個產品可以有多個包裝。在我的「編輯產品」jsp頁面中,我允許用戶編輯產品&刪除/添加/編輯任何包。現在,在我的控制器方法中提交更改時,我正在執行saveOrUpdate(product)。我正在觀察的是,新軟件包正在被添加到數據庫中,但那些被用戶刪除的軟件包因​​此並沒有從包中刪除。下面是我的hiberate配置代碼片段。我在這裏錯過了什麼嗎?使用Hibernate刪除一對多關係中的子對象/記錄

<hibernate-mapping> 
    <class name="author.vo.ProductVO" table="Product"> 
    <id name="ProductID" type="long"> 
      <column name="Product_ID" /> 
      <generator class="increment" /> 
    </id> 
    <set name="packages" inverse="true" cascade="all" lazy="false"> 
    <key column="Product_ID" not-null="true" on-delete="cascade"/> 
    <one-to-many class="author.vo.PackageVO" /> 
    </set> 

代碼添加產品

@Autowired 
private HibernateTemplate hibernateTemplate; 

this.hibernateTemplate.saveOrUpdate(prod); 
+0

您應該提供控制器代碼! – home

+0

控制器代碼太大而無法在此處發佈。有什麼具體的你想知道嗎? – Mady

+0

我假設實體從集合中刪除時,您是否刷新會話?如果沒有,那可能是你錯過的東西。 – aishwarya

回答

0

您應該添加「級聯刪除孤兒」到你的XML配置,另外,你爲什麼不首先嚐試的簡單情況。

  1. 是一個保存與父母 - 孩子一起工作。
  2. 是與父母 - 子女一起工作的刪除。
相關問題