zoukankan      html  css  js  c++  java
  • 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.级联可以设置多方,但是一般开发设置一方即可;

        

  • 相关阅读:
    即将到来的Android N,将具备这些新特性
    刚挣钱的程序猿同学该怎样花钱?
    Swift函数
    MVC
    css3硬件加速
    node+mongoDB+express项目需求解释
    柯里化
    web安全
    缓存机制详解
    nodejs --- crypto实现加密(转)
  • 原文地址:https://www.cnblogs.com/czb2580/p/6443304.html
Copyright © 2011-2022 走看看