vinegardou 2011-01-27 09:45 采纳率: 0%
浏览 258
已采纳

hibernate多对多删除中间表

我要直接删除中间表的记录是怎么做呢?代码应该怎么改?
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";

  • 写回答

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外接显示器 画质字体模糊