我要直接删除中间表的记录是怎么做呢?代码应该怎么改?
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默认多对多是级联的,你只要在其中一个,或两个对象中的List中把符合的删除,commit后Hibernate会自动把你的中间表更新,删除的