您的位置:首页 > 其它

hibernate中怎么只删除中间表

2014-05-06 14:01 316 查看
数据库有三张表,一张user,一张role,一张user_role,现在我要删除一个用户拥有的某些角色,user和role是多对多的关系,纠结了很久,下面这个方法好像可以正常删除,于是记录下来,便于以后参考
public void deleteRole(int userid,int[] sub) {
//TODO Auto-generated method stub
for(int a:sub){
try {
// 要删除的角色
roleInfo role=(roleInfo)dbsupport.GetObjectByClass(roleInfo.class, a);
//得到用户对象
userInfo user=this.getUser(userid);
//从user.getRoles集合中移除role
user.getRoles().remove(role);
//从role.getUsers()集合中移除user
role.getUsers().remove(user);
//数据库更新
dbsupport.UpDateByObjectNoTransaction(user);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
红色代码为关键性代码,移除俩边的关系
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: