首先配置表的多对多映射 具体方法参见《深入浅出hibernate》
下面列出删除中间表数据的方法
role跟Program 是多对多关系
下面是新增代码
道理跟删除一样
别忘了设置cascade="save-update"
下面列出删除中间表数据的方法
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"