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

  首先绑定对象间的关系;  

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

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--级联添加的更多相关文章

  1. Mybatis 一对一、一对多、多对多关联之级联添加

    示例项目:MIPO_CRM 一.一对一关联 示例:订单与销售机会 描述:在业务员与客户的联系人的联系记录中可以生成一条销售机会,而此条销售机会可生成一条订单,两者呈一对一关联. 1.表设计 oppor ...

  2. Hibernate级联操作解密(inverse和cascade)

    总结: Cascade:对级联操作进行限制,有如下几个参数: all : 所有情况下均进行关联操作.  none:所有情况下均不进行关联操作.这是默认值.  save-update:在执行save/u ...

  3. Hibernate级联及控制反转的增删改查

    在JavaHibernate中,双向多对一的操作一直是一个重点难点,本篇文章就是来探讨这个问题. 双向多对一:一个班级对应多个学生,多个学生同属于一个班级,通过班级信息可以查到班级内的学生,通过学生可 ...

  4. hibernate HQL添加语句

    1.Hibernate HQL添加语句 save();方法使用HQL语句来完成插入操作是不能实现的,不管你使用insert into....values...还是insert into.....sel ...

  5. hibernate 级联删除报更新失败的问题(org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update)

    首先hibernate级联删除的前提是,首先需要在映射文件中配置,配置多表之间的关联关系: 下面以部门表(Dept)和员工表(Emp)为例: 1.在Emp.hbm.xml映射文件中配置many-to- ...

  6. hibernate级联保存,更新个人遇到的问题

    在级联更新的时候,数据库中的数据是增加的,只是外键不存在,导致这样的问题产生的原因是,字表主键ID没有添加到集合中,导致Hibernate找不到子项而执行更新.

  7. Hibernate级联之一对多和inverse解析

    hibernate的级联可以说是hibernate最重要的部分,只有深入了解了级联的特性与用法,才能运用自如. 这次讨论一对多的情况,所以就使用博客项目的用户表和博客表作为示例,来一起学习hibern ...

  8. [NHibernate]一对多关系(级联删除,级联添加)

    目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及, ...

  9. 【转】Hibernate级联注解CascadeType参数详解

    cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新.若对触发器来修改或删除关联表相记录,必须要删除对应的关联表信息,否则,会存有脏数 ...

  10. 工作中遇到的问题--Hibernate注解添加在一方和多方的区别

    以Good和GoodStatus为例: 一.注解仅添加在一方: @Entity@Table(name = "GOOD")@Where(clause="enabled=1& ...

随机推荐

  1. Java ThreadLocal 使用详解

    ThreadLocal的官方API解释为: "该类提供了线程局部 (thread-local) 变量.这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每 ...

  2. 在Windows下搭建RocketMQ

    原文:http://blog.csdn.net/u014134180/article/details/51790988 目录 目录 一 准备工作 1 RocketMQ部署架构1 2 环境配置 二 安装 ...

  3. 自己构建的Lumbda表达式

    自己构建的Lumbda表达式 定义接口: package com.stono.lambda; public interface Add { public void add(int x, int y); ...

  4. C#——await与async实现多线程异步编程

    曾经,我们也许用过Thread.在主线程运行的时候.新开还有一个新线程,来运行新方法. 今天看别人发给我的一段代码的时候发现了一个不认识的await,可是又感觉非常熟悉的样子,感觉是线程那块儿的东西, ...

  5. 编程算法 - n个骰子的点数(递归) 代码(C)

    n个骰子的点数(递归) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 把n个骰子仍在地上, 全部骰子朝上一面的点数之和为s. 输入n, 打印出 ...

  6. android.app.Fragment与android.support.v4.app.Fragment不一致

    在看法中用到的Fragment在类型转换的时候非常easy出现这样的问题: 对照代码: class MyFragmentPagerAdapter extends FragmentPagerAdapte ...

  7. IE6\7\8 :last-child 和 :first-chlid 兼容

    IE9以下不支持last-child ,只支持first-child,边框尽量用上边框.

  8. jar包和动态链接库

    1 jar包更接近于动态链接库 java在编译的时候,尽管import了其它的jar包,但是它并没有将其它jar包中的源码拷贝到自己的class文件中,它只是使用了jar包中的名字. 而在执行的时候, ...

  9. ffmpeg resize and scale

    ffmpeg缩小视频尺寸 | 楚盟博客 https://www.5yun.org/13126.html ffmpeg -i test.mp4 -s 480×360 out.mp4 常用分辨率: 108 ...

  10. 第一次PHP面试题

    1.标记符title是放在标记符什么之间:head 2.级联样式表文件的扩展名:CSS 3.html中<pre>的作用:pre 元素可定义预格式化的文本 4.mysql_affected_ ...