public void delete(MenuModel mm) {
//完成級聯删除的前提是,被删除對象級聯的資料存在
//删除OID為4的資料時,對應的對象應該級聯哪些必須是已知的,此時對象中的關系資料存在
//mm對象此時具有哪些資料?隻有uuid,關系資料為null
//h3對于關系資料為空的處理方式是:斷開所有關系即可,(把外鍵置空)由于此時設定了inverse=true,又不維護關系,沒有進行任何操作
//解決方案:級聯删除前加載關系
MenuModel temp = menuDao.get(mm.getUuid());
//temp對象此時就具有了延遲加載功能,可以随時加載關系
menuDao.delete(temp);}
//當進行級聯删除時 一方對象首先要放棄與多方之間的關系,
//轉化為将外鍵字段設定為null 如果此時外鍵字段設定為不允許為null,
//引發下列異常 Caused by: java.sql.BatchUpdateException: Column 'puuid' cannot be n
//此時隻需要在進行關系維護時,使一方對象不對關系進行維護即可,不操作外鍵————inverse=true
<set name=children cascade=delete inverse=true />
<key column=puuid/>
<one-to-many class=erp.auth.menu.vo.MenuModel/>
</set>