在hibernate和spring整合中多对多在从表怎么删除??
user和role(从表设置了mappedBy)是多对多关系,怎么在删除role的时候把中间表的关联也删除,而user不删除...
user和role(从表设置了mappedBy)是多对多关系,怎么在删除role的时候把中间表的关联也删除,而user不删除
展开
1个回答
展开全部
如果删除某一个role,你可以这样做,先根据id把该role查询出来,假设该role对象有关联属性users,要删除中间表中的数据 role.setUsers(null);,然后删除role就可以了
更多追问追答
追问
我是在前台弄了一个从数据库中查询出来的roles的datagride的表,表中都有id,在列上点击删除后就提示删除,然后把将要删除的id通过ajax提交到后台,但是在删除该id的role对象的时候总是出现约束错误
追答
所以你应该删除中间表中的该role对应的记录,删除的方式有两种,第一种是需要设置级联,在role.hbm.xml中就可以了,第二种不需要设置级联操作,做法就是我上面说的步骤,三步走:1、根据id查出role,2、删除该role对应的中间表中数据,操作很简单,就是将该role对象关联的users对象置空,也就是role.setUsers(null),3、删除该对象就行了,提交事务就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询