一. cascade属性的介绍
1. 取值: all、none、save-update、delete
2. all -- 在所有情况下都执行级联操作
none -- 在所有情况下都不执行级联操作
save-update -- 在保存和更新的时候执行级联操作
delete -- 在删除的时候执行级联操作
二. 举例说明
例如教师和学生是一对多的关系,既一个老师对应多个学生。
在Student.hbm.xml文件中,多对一标签<many-to-one name="teacher" column="teacherID" cascade="all">
三. 程序实现
//教师实体
Teacher teacher = new Teacher();
teacher.setName("王老师");
teache.setEmail(XXXXX);
// session.save(teacher);
//学生实体
Student student = new Student();
student.setName("张三");
student.setTeacher(teacher);
session.save(student);
四. 程序说明
在Student.hbm.xml文件中,如果不加入cascade="all"这个标签,则标题三中的程序在没有“session.save(teacher);”这段代码的情况下会报错,因为teacher是临时
对象。而加入了cascade="all"这个标签后,在保存学生之前会先将教师信息进行保存,然后再保存学生,所以没有那段代码,程序不会报错。