各位高手:
    在这样炎热的夏天,遇到这样炙手的问题,真可谓是烦上加烦!当我采用spring + hibernate + mysql 进行数据库删除的时候,由于设置了父-子关系表,并在XML配置文件设置了级联删除,所以理想状态是当我删除父表中的某一记录,子表中外键相关的记录都会随之删除,但事与愿违,子表只是将相关记录的外键值置空,作为初学者,百思不得其解,望高手们指点迷津。(能否附加相关代码,万分感谢)

解决方案 »

  1.   


    <set name="childs" cascade="delete" lazy="true"><key column="parent_id"/>
    <one-to-many class=""/>
    </set>
      

  2.   

    数据库方面,parent_id作为child表的外键,
    POJO类;
    parent类
     private Set childs=new HashSet();
      

  3.   

    你出现的情况,可能是你的cascade属性没有配置对,你是没有配置cascade属性吧cascade的默认属性是none,它的含义是在修改或删除对象时,只是解除关联对象与该对象之间的关联关系
      

  4.   

    如上所说,要设置级联关系,如cascade="all"所有操作都级联或者"update"修改时级联,"delete"删除时级联等等!至于他们之间的关系应该由多的一方来管理就是子级来管理,在父级<one-to-many inverse="true">设置控制权反转
      

  5.   

    最简单的就是在数据库进行 级联关联 hibernate就不用任何配置了 KEY `uid` (`uid`),
    FOREIGN KEY (`uid`) REFERENCES `fathertable` (`uid`) ON DELETE CASCADE ON UPDATE CASCADE
      

  6.   

    将mysql里的两张表关系设置成及联删除。
      

  7.   

    pojo配置文件中设置cascade="all"或者cascade="delete" 别用默认的"none"
      

  8.   

    各位同仁,如果你们有成功操作的例子,麻烦发份给我,谢谢,[email protected]
      

  9.   

    cascade="delete",这个应该不会错啊
    你把错误信息发出来
      

  10.   

    实在不行就在数据库FK中的属性选择"cascade"