为何我执行了session.save(grade); 没有更新?一定要加st.setGrade(grade); 还有为何只save了grade,却把student也更新了
第一个问题:
GradeEntity grade = new GradeEntity("班级1","实验班");
StudentEntity st = session.get(StudentEntity.class,1);
grade.getStudent().add(st);
st.setGrade(grade); //一定要有这行,没有的话,就是只有insert
session.save(grade);Hibernate: select max(gid) from grade Hibernate: insert into grade (gdesc, gname, gid) values (?, ?, ?)
第二个问题,即使我加了,这里也是只执行了session.save(grade);,为什么学生的信息也更新了
这里还没到级联呢,不应该是只save grade么
虽然我知道肯定是内部实现的,从打印的数据库语句可以看出来:
Hibernate: select max(gid) from grade Hibernate: insert into grade (gdesc, gname, gid) values (?, ?, ?) Hibernate: update student set gid=?, sex=?, sname=? where sid=?
最后是更新操作,但是光看这个session.save(grade)还是很奇怪。