hibernate如何做到仅仅删除中间表的数据?
public String stuDropKc(){  
String kch=kc.getKch();
Kcb kc=kcService.getOneKc(kch);
ActionContext ctx=ActionContext.getContext();
Map session=ctx.getSession();
String xh=((Dlb)session.get("user")).getUsr();
Xsb xs=xsService.getOneXs(xh);
//xsService.dropKc(xh,kch);
Set kcs=xs.getKcs();
kcs.remove(kc);
xs.setKcs(kcs);
xsService.update(xs);
return SUCCESS;
}这是我的代码,但是无法做到删除中间表的数据。另外, 如果是一对多的关系呢,仅仅解除关系,让外键为空,如何做到?
请教各位,谢谢!

解决方案 »

  1.   

    一方.set一方(null);中间表的数据就没了
      

  2.   


    我只是想做退课的功能,删除数据库中间表中特定的一条数据
    应该怎么实现呢?
    先把一方从一方的集合中remove掉,再update一方就可以删除指定的一条数据。
      

  3.   


    我只是想做退课的功能,删除数据库中间表中特定的一条数据
    应该怎么实现呢?
    先把一方从一方的集合中remove掉,再update一方就可以删除指定的一条数据。我就是这样做的,但是没用
    既不会出错,也不会删除
    remove之后调用update并不会删除那条记录我刚才直接写了sql语句删除了关系表中的数据,是可以做到的
      

  4.   


    我只是想做退课的功能,删除数据库中间表中特定的一条数据
    应该怎么实现呢?
    先把一方从一方的集合中remove掉,再update一方就可以删除指定的一条数据。我就是这样做的,但是没用
    既不会出错,也不会删除
    remove之后调用update并不会删除那条记录我刚才直接写了sql语句删除了关系表中的数据,是可以做到的
    我试过可以啊
      

  5.   


    我只是想做退课的功能,删除数据库中间表中特定的一条数据
    应该怎么实现呢?
    先把一方从一方的集合中remove掉,再update一方就可以删除指定的一条数据。我就是这样做的,但是没用
    既不会出错,也不会删除
    remove之后调用update并不会删除那条记录我刚才直接写了sql语句删除了关系表中的数据,是可以做到的
    我试过可以啊可我是这样做的,没效果。。
      

  6.   

    多对一的一方设置成懒加载,然后在类上加@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"}) ,这样就不影响序列化以及删除的情况了,主要还是控制方的问题,你试试我的方法,不行再继续弄