首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

请问一个hibernate多重关系的经典有关问题!

2012-04-12 
请教一个hibernate多重关系的经典问题!!有三张表,大致内容如下:BigTypebt_id|bt_name1| 图书SmallTypest_i

请教一个hibernate多重关系的经典问题!!
有三张表,大致内容如下:

BigType
bt_id|bt_name
  1 | 图书
SmallType
st_id|st_name|bt_id
  11 | 计算机 | 1
Goods
g_id|g_name_|st_id
 111| java | 11

我是hibernate配置文件是这样写的,大概内容:
BigType.hbm

XML code
<set name="stypes" order-by="st_id" lazy="false" inverse="true" cascade="all"> <key column="bt_id" /><one-to-many class="com.joey.supershop.po.Stype"/></set>


SmallType.hbm
XML code
 <set name="manygoods" order-by="id" lazy="false" inverse="true" cascade="all"> <key column="st_id" /><one-to-many class="com.joey.supershop.po.Goods"/></set>


Goods.hbm
XML code
<many-to-one name="stype" column="st_id" lazy="false"/>


现在说我的问题:

我的程序在删除“图书”这个实体时,结果正常,其子类别“计算机”以及“计算机”下的“java” 都被删除。但是在删除“计算机”时出现异常“deleted object would be re-saved by cascade” 上网搜的答案都是两级关系的解决方法,请问各位有没有更好的办法?






[解决办法]
探讨
引用:
当删除“计算机”的时候有连带关系的,所以要这么删除

计算机.get图书.getStypes.remove(计算机)

事务提交


感谢你的思路,经测试可行~ 但是能不能通过修改配置文件来达到目的呢? 十分感谢

热点排行