Hibernate级联删除问题 10
如图,如果删除A中id为1的记录,会同时删除B中AID为1的记录;如果删除A中id为3的记录,会同时C中AID为3的记录。Hibernate要怎么实现?请大神解答,最好附...
如图,如果删除A中id为1的记录,会同时删除B中AID为1的记录;如果删除A中id为3的记录,会同时C中AID为3的记录。Hibernate要怎么实现?请大神解答,最好附上实现代码。
展开
1个回答
展开全部
其实级联删除没有什么困难的就是一个一对多,一对一,多对一的关系,就好比是注解:
OneToMany
如果删除One这个对象,配置 允许级联删除将会删除many方所有的数据
OneToOne
如果删除One这个对象,配置 允许级联删除将会删除toOne方所有的数据
ManyToOne
在有控制权的映射文件中配置 cascade
配置选项
all : 所有操作都传递到相关联的对象
save-update 保存和更新传递到相关联的对象
delete 删除操作传递到相关联的对象
delete-orphan : 所有操作都传递到相关联的对象 并删除不再与父对象关联的对象。
你这样是一张表链接额外两张表,建议多加一个字段,然后按照上面的关系就可以实现你的要求了,否则主外键关键会错乱呀!我也不是什么大神,正在5itjob学习
提交回答
追问
谢谢。
你说的是哪张表多加一个字段?
我现在的问题是用户能直接操作的只有表A。B跟C仅仅作为数据补充,要根据A的增删而作出响应。也就是说,用户不能直接增加或删除B跟C中的数据。这么一来,我想通过表A的增删来级联B跟C,要如何做?
纯新手一枚,接触Hibernate满打满算就一个月。
追答
例如 你A跟B C都有主外键关系,你删除A可以同时删除B C, 也就是A有两个字段, id bid cid id是自己的主键,你删除A可以删除B C 也可以将 bid 或者cid 其中一个删除,也可以同时删除
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询