本帖最后由 a107494639 于 2011-04-14 16:06:19 编辑

解决方案 »

  1.   

    使用Hibernate的级联删除:在Hibernate属性文件中的set节点里面:
    添加cascade="delete"
    在删除之前先把set集合添加完毕、
    然后在删除对象、这样Hibernate就会自动给你级联删除!
      

  2.   

    我没用hibernate哦,如果只是用jdbc就没有办法了吗?
      

  3.   

    在获取连接时conn.setAutoCommit(false);关闭自动提交事务
    try{
    删除老师操作;
    删除学生操作;//提交事务,此时老师和学生都将被删除
    conn.commit();
    }catch(Exception e){
     conn.rollback();//如果出现异常则回滚事务
    }
      

  4.   

    如果不用hibernate.这样的操作我会写成一个方法 deleteAllByTeacher(teacher) .然后在里面附带删除students. 
      

  5.   


    可是这个方法不妥,因为这样就把业务逻辑层的代码写在DAO层里了。
    不过,我想来想去也只能是这样子。
      

  6.   


    dao.delete(teacher)这个方法里面添加删除学生的操作这个不涉及到业务逻辑啊学生是因老师而存在..老师不存在了学生当然就不会存在了所以删除老师必须删除学生,这是一个整体操作楼主理清他们之间的关系就明白了