整了一下午终于有点苗头了
赶紧写下来
首先配置表的多对多映射 具体方法参见《深入浅出hibernate》
下面列出删除中间表数据的方法
role跟Program 是多对多关系
下面是新增代码
道理跟删除一样
别忘了设置cascade="save-update"
赶紧写下来
首先配置表的多对多映射 具体方法参见《深入浅出hibernate》
下面列出删除中间表数据的方法
role跟Program 是多对多关系
Role role = get(roleId);
for(Long programId : programIds){
Program p = get(Program.class, programId);
if(p != null){
//下面两句就是关键代码了 多对多的所有操作都必须同时操作两端的表,保存 更新 删除等都是如此
p.getRoles().remove(role); //删除节目中对角色的引用
role.getPrograms().remove(p);//删除角色表对节目表的引用
}
}
save(role);
下面是新增代码
Role role = get(roleId);
for(Long programId : programIds){
Program p = get(Program.class, programId);
p.getRoles().add(role); //添加角色到节目的关联
role.getPrograms().add(p);//
}
save(role);
道理跟删除一样
别忘了设置cascade="save-update"