我要直接删除中间表的记录是怎么做呢?代码应该怎么改?
String[] permNos=permissionNos.split(",");
Person person=personService.getPerson(Integer.parseInt(personNos));//根据id查询用户
System.out.println("删除前的"+person.getPermissions().size());
//根据用户读取数据
for(Iterator it = person.getPermissions().iterator();it.hasNext();) { Permission perm = (Permission)it.next();
System.out.println("原有的编号"+perm.getPermissionNo());
}
for(int i=0;i<permNos.length;i++){//删除选中的权限编号
int pNos=Integer.parseInt((String)permNos[i]);
Permission permission = (Permission)permissionService.getPermission(pNos);
System.out.println("需要删除的编号"+permission.getPermissionNo());
person.getPermissions().remove(permission);
}
System.out.println("删除后的"+person.getPermissions().size());
this.personService.updatePerson(person);
setPerson(personService.getPerson(Integer.parseInt(personNos)));
return "permissionDetal";
hibernate多对多删除中间表
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 疯狂的java程序员 2011-01-30 16:24关注
Hibernate默认多对多是级联的,你只要在其中一个,或两个对象中的List中把符合的删除,commit后Hibernate会自动把你的中间表更新,删除的
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 公交车和无人机协同运输
- ¥15 stm32代码移植没反应
- ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
- ¥100 连续两帧图像高速减法
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊