首页 > 代码库 > hibernate--级联添加

hibernate--级联添加

  级联添加操作值操作当前数据时.将关联数据也进行操作,就是保存当前数据的同事也将保存和修改关联的数据

  首先绑定对象间的关系;  

    `将多方对象添加到一方对象的集合中  

tm.getStudents().add(sm1);

tm.getStudents().add(sm2);

 设置多方的关联对象为一方对象,   

sm1.setTeacher(tm);
sm2.setTeacher(tm);

  然后添加老师对象.  

s.save(tm);

  设置老师对象时,级联关联对象

<set name="students  cascade="save-update >

eg:设置类set元素中的cascade="save-update" 属性后,当保存对应的老师对象时,会检测变量为student的集合中是否保存有数据, 如果有数据,将其中的对象进行级联操作. 如过被级联的对象时TO,只想save操作,吐过被级联的对象时PO,执行update操作.

  备注:  

    1, 当前进进设置老师对学生的级联, 因此保存老师时, 可以级联学生对象,但是保存学生是不能级联老师对象,,可以通过设置many-to-one元素的cascade属性完成学生到老师的级联.

    2,如果未设置级联操作,而保存具有关联关系的老师对象, 灰关联顺势对象跑出异常;

重点:

  1,如果当前老师对象TO,而是PO,也可以记性上述操作,但是由于有PO 对象一级缓存中已经存在有数据,因此执行的是update语句

  2, 如果老师对象关联的学生对象不是TO,而是PO,被级联后,执行的不是save操作,而是update操作;

   3;如果老师对象在数据库中已经存在有关联的学生数据,而操作是老师数据使用DO数据,将会产生关系的变化,

    4.级联可以设置多方,但是一般开发设置一方即可;

 

 

    

hibernate--级联添加