hibernate级联删除问题

lhd0 2011-03-07

1.如果Many端存在于One端的集合中,直接删除Many,就会抛出"deletedobjectwouldbere-savedbycascade"的异常,解决办法是在One端的集合中先删除Many端(先把他们之间的联系割断),然后再在Hibernate中删除Many端。

但在JDBC下直接删除Many端是可以的。

2.如果直接删除One端:

A.如果One端中没有设置Cascade为delete或者all,就会抛出“Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails”的异常。在JDBC下也是不行的(在建表时设置ONDELETECASCADE除外),因为Hibernate只是把JDBC下的异常封装而已。

B.如果One端中设置Cascade为delete或者all,删除的时候就会把所有Many端都删除。

相关推荐

LetonLIU / 0评论 2020-05-29
东方咖啡屋 / 0评论 2020-01-06