场景:
学生与班级的多对一,在配置文件中是配置学生到班级的单向关联;
比如现在有如下代码:
Class c = new Class();
c.setName("1班");
Student s = new Student();
s.setName("小明");
s.setClassName(c);
session.save(s);
(内存空间的结构图)
持久化student对象时,引用的class对象要是已经持久化了的,才能执行;
如果想在持久化多的一端时,自动级联保存和更新一的一端,就要把cascade设置为“save-update”;
同理,如果设置为双向关联的话,通过班级保存学生,例:
c.getStudents().add(s);
如果此时没给class端设置
cascade为“save-update”;那也会报同样的错误。