关系模式中多的一方 以及 一的一方的删除

来源:互联网 发布:淘宝店突然没流量 编辑:程序博客网 时间:2024/04/28 23:55

 

多的一方的删除 删除条目:

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);

主要就是要理解好关系 多对多关系的时候  最好把可能需要删除的一方设计为维护端 以便方便删除