Hibernate之Cascade分析

cascade 级联:

属性值为:none, save-update, delete, all, delete-orphan

分析:

以班级和学生(OneToMany)为例:

1.  如果是 clazz.getStudents.add(stu1), stu1是刚new出来的,是临时对象,没有持久化,会报错

2.  把none 改为 save-update 就成功

3.  当是delete时, 删除一个班级,就会删除班级所有学生,这就是级联

4.  当时All时,就包含了2,3两个属性功能,这是不要两边设ALL,否则,相互关联就会把班级学生都删掉

5.  在4中,如果clazz.getStudents.remove(stu1), 则不会删掉 stu1,只会把 外键设为NULL; 用delete-orphan

     就可解决。

详解:http://baobeituping.iteye.com/blog/868394

你可能感兴趣的:(Hibernate)