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.级联可以设置多方,但是一般开发设置一方即可;

        

  • 相关阅读:
    dropload.js 上滑加载,下拉刷新
    jQuery支持图片放大缩小查看效果
    iScroll-5 API 中文版
    多行文字垂直居中
    jQuery延迟加载(懒加载)插件 – jquery.lazyload.js
    js生成中文二维码
    JS中,如何判断一个数是不是小数?如果是小数,如何判断它是几位小数??
    HTML5页面,用JS 禁止弹出手机键盘
    watch和computed的用法区别是什么?
    JS中的call()和apply()
  • 原文地址:https://www.cnblogs.com/czb2580/p/6443304.html
Copyright © 2011-2022 走看看