我的hibernate 组表的映射文件里配置了cascade="delete" inverse="true" mysql数据库里面也设置了外键的级 5
可为什么就是删除不了从表里面的数据了?hibernate执行的时候自动又加了一个外键的关联关系到数据库中的表中,但是hibernate加的这个外键没有级联,为noacti...
可为什么就是删除不了从表里面的数据了?hibernate执行的时候自动又加了一个外键的关联关系到数据库中的表中,但是hibernate加的这个外键没有级联,为noaction 怎么解决啊?
展开
5个回答
展开全部
既然删不掉,那应该就是某些表对从表有外键引用。
检查下你的配置文件是不是哪里写错了。
inverse="true"意思是把关系维护交给另一方,one-to-many的时候用得比较多,写在one-to-many标签内,把关系维护交给多的一方,有了这个,更新从表信息的时候,会级联更新主表信息,但是更新主表信息的时候,就不会级联更新从表。
我猜问题就出在invers="true"这里,而且外键就在这一行,inverse="true"把关系维护交给了另一方(引用外键的那一方),也就是更新当前这张表的时候不能级联更新另外那张表,但是另外那张表更新的时候能级联更当前这张表,但是要当前这张表的内容得先删除另一张表的内容,而inverse="true"导致删当前这张表的内容时不会先去删除另外一张表内容,就抛出了异常,所以,建议你删除inverse="true"试试。
检查下你的配置文件是不是哪里写错了。
inverse="true"意思是把关系维护交给另一方,one-to-many的时候用得比较多,写在one-to-many标签内,把关系维护交给多的一方,有了这个,更新从表信息的时候,会级联更新主表信息,但是更新主表信息的时候,就不会级联更新从表。
我猜问题就出在invers="true"这里,而且外键就在这一行,inverse="true"把关系维护交给了另一方(引用外键的那一方),也就是更新当前这张表的时候不能级联更新另外那张表,但是另外那张表更新的时候能级联更当前这张表,但是要当前这张表的内容得先删除另一张表的内容,而inverse="true"导致删当前这张表的内容时不会先去删除另外一张表内容,就抛出了异常,所以,建议你删除inverse="true"试试。
展开全部
hibernate执行的时候自动又加了一个外键的关联关系到数据库中的表中,这说明你配置2 个类之间的映射关系有问题,,如果你用反向工程拟可以看见有两个健,也就是这两个表 互为子表,级联操作只能删除子表,所以级联操作失败
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-05-05
展开全部
cascade=“all” all代表把所有对父对象进行保存/更新/删除会导致对(所有)子对象的保存/更新/删除。你试一下把all改成 none 看一下;
all : 所有情况下均进行关联操作。
none:所有情况下均不进行关联操作。这是默认值。
save-update:在执行save/update/saveOrUpdate时进行关联操作。
delete:在执行delete时进行关联操作。
另外,团IDC网上有许多产品团购,便宜有口碑
all : 所有情况下均进行关联操作。
none:所有情况下均不进行关联操作。这是默认值。
save-update:在执行save/update/saveOrUpdate时进行关联操作。
delete:在执行delete时进行关联操作。
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cascade=“all” all代表把所有对父对象进行保存/更新/删除会导致对(所有)子对象的保存/更新/删除。你试一下把all改成 none 看一下;
all : 所有情况下均进行关联操作。
none:所有情况下均不进行关联操作。这是默认值。
save-update:在执行save/update/saveOrUpdate时进行关联操作。
delete:在执行delete时进行关联操作。
all : 所有情况下均进行关联操作。
none:所有情况下均不进行关联操作。这是默认值。
save-update:在执行save/update/saveOrUpdate时进行关联操作。
delete:在执行delete时进行关联操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cascade="all"
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询