Hibernate的学习之路二十一(一对多的级联保存)
来源:互联网 发布:高一历史优化学案答案 编辑:程序博客网 时间:2024/05/16 14:37
前言
这篇文章主要是说级联的保存,比较重要的概念是。
保存客户级联联系人,那么配置应该写在客户的配置上。
分析
技术分析之级联保存
1. 测试:如果现在代码只插入其中的一方的数据 * 如果只保存其中的一方的数据,那么程序会抛出异常。 * 如果想完成只保存一方的数据,并且把相关联的数据都保存到数据库中,那么需要配置级联!! * 级联保存是方向性2. 级联保存效果 * 级联保存:保存一方同时可以把关联的对象也保存到数据库中!! * 使用cascade="save-update"
以下是单项关联,只要在mapping文件中设置cascade="save-update"就可以。
/** * 级联保存:保存联系人,级联客户 */@Testpublic void run4(){Session session = HibernateUtils.getCurrentSession();Transaction tr = session.beginTransaction();// 保存客户和联系人的数据Customer c1 = new Customer();c1.setCust_name("美美");// 创建2个联系人Linkman l1 = new Linkman();l1.setLkm_name("熊大");Linkman l2 = new Linkman();l2.setLkm_name("熊二");// 使用联系人关联客户l1.setCustomer(c1);l2.setCustomer(c1);// 保存session.save(l1);// 没有保存2个联系人session.save(l2);tr.commit();}/** * 级联保存:保存客户,级联联系人 */@Testpublic void run3(){Session session = HibernateUtils.getCurrentSession();Transaction tr = session.beginTransaction();// 保存客户和联系人的数据Customer c1 = new Customer();c1.setCust_name("美美");// 创建2个联系人Linkman l1 = new Linkman();l1.setLkm_name("熊大");Linkman l2 = new Linkman();l2.setLkm_name("熊二");// 单向关联c1.getLinkmans().add(l1);c1.getLinkmans().add(l2);// 保存数据session.save(c1);tr.commit();}
以下是双向关联,两边配置文件都要配置好:
/** * 测试级联保存 */@Testpublic void run5(){Session session = HibernateUtils.getCurrentSession();Transaction tr = session.beginTransaction();// 保存客户和联系人的数据Customer c1 = new Customer();c1.setCust_name("美美");// 创建2个联系人Linkman l1 = new Linkman();l1.setLkm_name("熊大");Linkman l2 = new Linkman();l2.setLkm_name("熊二");l1.setCustomer(c1);c1.getLinkmans().add(l2);session.save(l1);tr.commit();}
阅读全文
0 0
- Hibernate的学习之路二十一(一对多的级联保存)
- Hibernate的学习之路二十二(一对多的级联删除)
- hibernate的级联保存操作(一对多)
- 有关hibernate一对多关系的级联保存和级联删除例子
- Hibernate的学习之路二十(一对多的双向关联保存数据)
- Hibernate的学习之路二十七(多对多操作级联)
- hibernate中hbm的级联操作(一对多)
- hibernate_day03_06_一对多操作(级联保存二)
- Hibernate 学习笔记 之 一对多关系 及其 级联操作
- Hibernate的学习之路二十三(一对多的cascade取值和孤儿删除)
- hibernate 学习之二(一对多映射)
- Hibernate的一对多增改级联操作
- JAVAWEB开发之Hibernate详解(二)——Hibernate的持久化类状态与转换、以及一级缓存详解、关联关系的映射(一对多、多对多、级联)
- JAVAWEB开发之Hibernate详解(二)——Hibernate的持久化类状态与转换、以及一级缓存详解、关联关系的映射(一对多、多对多、级联)
- 【JPA 级联保存/级联删除】@OneToMany (双向) 一对多
- 【JPA 级联保存/级联删除】@OneToMany (双向) 一对多
- SSH框架学习(十一、Hibernate一对多)
- Hibernate系列学习之(二) 多对一、一对一、一对多、多对多的配置方法
- ML_AI_Knowledge
- java poi excel 2003和2007导入导出
- 嵌入式高级编程
- pat打印沙漏
- 互联网并发编程之一 线程安全01
- Hibernate的学习之路二十一(一对多的级联保存)
- HTML动态增加和删除表格的行和列
- const 与assert的学习
- 有人问我:程序员要供祖师爷的话该供谁?
- 放弃Python转向Go语言:我们找到了以下9大理由
- 如何将项目上传到Github
- 史上最全的Vim命令
- 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。(java)
- 微信云控系统的实现原理,微信云控系统源码之服务器推送的实现及其核心代码