级联到底有什么用?
(在进行级联操作时,为了提高性能,会在一方关系属性中追加inverse="true"设置,目的是让一方放弃关系维护操作)放弃关系维护操作又是什么意思?

解决方案 »

  1.   

    这个问题,你应该是直接百度或者google的
    inverse 主要是主外键关系的维护.不会删除级联对像.只能集合起作用
    比如:
    老师和学生的关系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的,很基础的东西...
      

  2.   

    这个问题,你应该是直接百度或者google的
      

  3.   

    这个问题,你应该是直接百度或者google的
      

  4.   

    这个问题,你应该是直接百度或者google的
      

  5.   

    inverse,3楼讲的很清楚,级联就是针对于一对多、一对一和多对多关系时候的保存策略,使用属性cascadeType设置,具体的可以参照JPA官方文档。