hibernare多表关联(级联操作)
来源:互联网 发布:java定义泛型变量 编辑:程序博客网 时间:2024/06/06 03:21
- 级联是有方向性的,所谓的方向性指的是,在保存单的一方级联多的一方和保存多的一方级联单的一方
- 首要确定我们要保存那一方,要保存用户 ,用户就是主控方。保存客户的一方,客户就是主控方 那一方是主控方就在哪一方加上
级联属性
cascade="" //这个属性<!-- cascade属性取值: save-update:(更新并保持) delete:(删除) all:(save-update+delete这个属性覆盖上面两个)-->
代码演示
- 在多对一orm(映射文件)(在many-to-one元素中添加cascade属性)
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.xiaolong.domian"> <class name="User"> <id name="user_uid"> <generator class="native"></generator> </id> <property name="user_name"></property> <property name="user_age"></property> <!-- many-to-one:多对一配置 name:一的一方对象的名称 class:一的一方全类名 columu:表中外键的名称 --> <many-to-one name="Customer" class="cn.xiaolong.domian.Customer" column="cus_id" //-------------- 加上这里------------------cascade="save-update"//-----------------------------------------></many-to-one> </class></hibernate-mapping>
@Test public void demo1(){ Session session = HibernateUtils.getCurrentSession(); Transaction tx = session.beginTransaction(); //创建一个用户 User user = new User(); user.setUser_name("张三"); User user2 = new User(); user2.setUser_name("李四"); //创建客户 Customer c = new Customer(); c.setC_name("淘宝"); c.setC_grade("vip"); //建立关系 c.getSetUser().add(user); c.getSetUser().add(user2); user.setCustomer(c); user2.setCustomer(c); //把瞬时的转成持久化 //session.save(c); //现在没有保存客户客户还是瞬时状态 session.save(user); session.save(user2); tx.commit(); }
测试成功下面测试多是指控方
- 把多的一方cascade=”save-update”(保存并更新)
- 在单的一方加上cascade=”save-update”这个属性(在set属性里面加上ascade=”save-update”属性
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.xiaolong.domian"> <class name="Customer" table="customer"> <id name="cus_id"> <generator class="native"></generator> </id> <property name="c_grade"></property> <property name="c_name"></property> <!-- set标签 name:多的一方集合的属性名称 --> <set name="setUser"//----------------------在set标签里 ascade="save-update">//-------------------------<!-- key标签: column属性:多对一的一方外键的名称 --> <key column="user_cust_id"></key> <!-- one-to-many标签: class属性:多的一方全类名 --> <one-to-many class="cn.xiaolong.domian.User" /> </set> </class></hibernate-mapping>
@Test public void demo1(){ Session session = HibernateUtils.getCurrentSession(); Transaction tx = session.beginTransaction(); //创建一个用户 User user = new User(); user.setUser_name("张三"); User user2 = new User(); user2.setUser_name("李四"); //创建客户 Customer c = new Customer(); c.setC_name("淘宝"); c.setC_grade("vip"); //建立关系 c.getSetUser().add(user); c.getSetUser().add(user2); user.setCustomer(c); user2.setCustomer(c); //把瞬时的转成持久化 session.save(c); //session.save(user);//现在没有保存用户 //session.save(user2); tx.commit(); }
* 测试成功
阅读全文
0 0
- hibernare多表关联(级联操作)
- 关联关系的级联操作
- 关联关系的级联操作
- 关联关系的级联操作
- 关联表级联删除
- mybatis学习笔记(十一)多对多关联查询/级联操作
- JPA学习记录六(JPA中的一对多双向关联与级联操作)
- Hibernate入门BLOG[十一、Hibernate表关联的级联操作]
- 12-hibernate关联关系的级联操作
- hibernate_级联操作、关联关系映射
- Hibernate使用中间表完成单向多对多关联关系的配置和级联操作示例
- 传智播客jpa详解视频教程(七):JPA中的一对多双向关联与级联操作、延迟加载与关系维护
- ssh框架下的关联表删除(级联删除)
- hibernare多对多关系映射
- JPA中的多对多双向关联、级联操作、关系维护、延迟加载
- Hibernate学习之级联操作4——多对多关联关系
- JPA中的一对多双向关联、级联操作、关系维护、延迟加载
- 一对多单向双向映射关联关系之映射文件与级联操作
- 进程的创建
- 最长递增子序列
- 598. Range Addition II
- Git安装与配置
- 多线程linux
- hibernare多表关联(级联操作)
- 字典树 【知识点 +模板】
- 关于linux的一些常用命令
- Git与TortoiseGit基本操作
- Redis 五种数据结构
- 推荐一本LTE入门的优秀书籍
- Javascript for in的缺陷总结
- Windows下安装TensorFlow-gpu
- 软件光栅化渲染器(十)