多的一方的删除 删除条目:
for(Integer i:ids){
System.out.println(i+"i");
item=this.courseItemService.find(i);
t=item.getTeacher();
c=item.getCourse();
t.getCourseItems().remove(item);
c.getCourseItems().remove(item);
this.courseItemService.delete(i);
}
解除关系就可以
删除1的1方:
for(Integer i:ids){
System.out.println(i+"i");
p=this.positionService.find(i);
if(p!=null){
Set<PositionItem> items=p.getPositionItems();
Iterator<PositionItem> it=items.iterator();
List<PositionItem> its=new ArrayList<PositionItem>();
System.out.println(items.size());
while(it.hasNext()){
item=it.next();
it.remove();
System.out.println(item.getPosition().getPosition_name());
c=item.getCompany();
p=item.getPosition();
c.getPositionItems().remove(item);
p.getPositionItems().remove(item);
this.positionItemService.delete(item.getId());
}
p.setPositionItems(null);
// p.setCourseItems(null);
System.out.println(items.size());
// System.out.println(t.getTeacher_name()+"name");
this.positionService.delete(i);
it.remove() 一定要加上 要不会报集合错误
更新一的一方
if (formbean.getId()!=0) {
Position position = this.positionService.find(formbean.getId());
Set<PositionItem>items=position.getPositionItems();
Iterator<PositionItem> it=items.iterator();
PositionItem item=new PositionItem();
while(it.hasNext()){
item=it.next();
item.getPosition().setPosition_name(formbean.getPosition_name());
this.positionItemService.update(item);
}
position.setPosition_name(formbean.getPosition_name());
this.positionService.update(position);
}
更新多的一方
if(!p.getPosition().getPosition_name().equals(formbean.getPosition_name())){
p.setPosition(pos);
pos.getPositionItems().add(p);
}
if(!p.getCompany().getCompany_name().equals(formbean.getPosition_company())){
p.setCompany(c);
c.getPositionItems().add(p);
}
this.positionItemService.update(p);
主要就是要理解好关系 多对多关系的时候 最好把可能需要删除的一方设计为维护端 以便方便删除