日期:2014-05-18 浏览次数:20706 次
class Student{
}
class Teacher{
Set<Student> students = new HashSet<Student>();
}
当在Teacher 端 inverse = false 时,
执行:
假定有个学生Set集合为 students
Teacher t = new Teacher();
t.setStudents(students)
save(t);
数据库执行时就会
1、先保存t
2、然后保存students
3、然后把t生成的主键,update到student与teacher的关系外键上.
当inverse = true时
第3歩update就不需要.student自己去维护与teacher的外键关系.即第2歩就会之间把外键与学生实体直接保存到学生表中.也即老师不负责维护与学生的外键关系,也就是你说的放弃关系维护操作
2楼说的级联删除,需要结合另一个属性cascade,当cascade="delete"时,删除老师将会同时删除学生.
这些概念的东西完全可以google的,很基础的东西...