hibernate 一对多操作(级联操作)
一对多级联操作
1. 级联保存
复杂写法
Company company = new Company();
company.setcName("Hello");
company.setcAdress("World");
Staff staff = new Staff();
staff.setsName("hi");
staff.setsAge(0);
company.getSetStaff().add(staff);
staff.setCompany(company);
session.save(company);
session.save(staff);
一般写法
配置Company.hbm.xml,在set标签加入cascade="save-update" 表示级联保存

Company company = new Company();
company.setcName("Hello");
company.setcAdress("World");
Staff staff = new Staff();
staff.setsName("hi");
staff.setsAge(0);
company.getSetStaff().add(staff);
session.save(company);
保存前
公司表

员工表

保存后
公司表

员工表

公司,员工信息都保存成功,并且外键也对应成立
2. 级联删除
配置Company.hbm.xml,在set标签加入cascade="delete" 表示级联删除。

先获取company对象,在调用session的delete方法删除company.
Company company = new Company();
company = session.get(Company.class, 1);
session.delete(company);
删除前
公司表

员工表

删除后
公司表

员工表

即公司信息删除后,与删除的公司有关员工也会被删除。实现了级联删除效果。
当未设置Company映射配置文件时,即未在set标签加入cascade="delete"
删除前
公司表

员工表

删除后
公司表

员工表

即与删除公司有关的员工不会被删除而是将对应员工的外键设置为null
3.一对多修改操作
将id为4的员工公司改为id为为5的公司
公司表

员工表

操作:
Company company = new Company();
company = session.get(Company.class, 5);
Staff staff = new Staff();
staff = session.get(Staff.class, 4);
company.getSetStaff().add(staff);
staff.setCompany(company);
操作后

员工的公司外键改为5,成功。
hibernate 一对多操作(级联操作)的更多相关文章
- Hibernate 一对多配置 级联操作(级联失败问题分析解决)
一方: package com.xdfstar.domain; import java.io.Serializable;import java.util.Date;import java.util.H ...
- Java三大框架之——Hibernate关联映射与级联操作
什么是Hibernate中的关联映射? 简单来说Hibernate是ORM映射的持久层框架,全称是(Object Relational Mapping),即对象关系映射. 它将数据库中的表映射成对应的 ...
- hibernate 注释多表 级联操作
一对多模型(单向) 说明: 一个客户对应多个地址,通过客户可以获得该客户的多个地址的信息.客户和地址是一对多的关系,并且客户与地址是单向关联的关系. 映射策略 # 外键关联:两个表的关系定义在一个表中 ...
- hibernate 一对多(级联关系)
hibernate 核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hiber ...
- 六 Hibernate多表操作&级联&外键维护
Hibernate的一对多关联映射 Hibernate的多对多关联映射 数据库表与表之间的关系:一对多,多对多,一对一 一对多:一个部门对应多个员工,一个员工只能属于一个部门.一个客户对应多个联系人, ...
- 【SSH三大框架】Hibernate基础第九篇:cascade关联关系的级联操作
这里要说的是Hibernate的关联关系的级联操作,使用cascade属性控制. 依旧用部门和员工举例.多个员工相应一个部门(多对一关联关系) 员工类:Employee.java package cn ...
- Hibernate框架笔记03表操作多对多配置
目录 1. 数据库表与表之间的关系 1.1 一对多关系 1.2 多对多关系 1.3 一对一关系[了解] 2. Hibernate的一对多关联映射 2.1 创建一个项目,引入相关jar包 2.2. 创建 ...
- Hibernate 一对多
表与表之间关系回顾(重点) 1 一对多 (1)分类和商品关系,一个分类里面有多个商品,一个商品只能属于一个分类 (2)客户和联系人是一对多关系 - 客户:与公司有业务往来,百度.新浪.360 - 联系 ...
- [原创]关于Hibernate中的级联操作以及懒加载
Hibernate: 级联操作 一.简单的介绍 cascade和inverse (Employee – Department) Casade用来说明当对主对象进行某种操作时是否对其关联的从对象也作类似 ...
随机推荐
- D3画图学习一
一.D3画图简介 D3 是最流行的可视化库之一,它被很多其他的表格插件所使用.它允许绑定任意数据到DOM,然后将数据驱动转换应用到Document中.你可以使用它用一个数组创建基本的HTML表格,或是 ...
- Ubuntu 修改时区和时间
tzselect #根据提示选择时区 sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #把设置好的时区文件粘贴到 /etc/local ...
- python 下的数据结构与算法---6:6大排序算法
顶先最后推荐:哈哈,意思是放到顶部强调其重要性,但是应该我总结的六种算法看完了后再看的一篇醍醐灌顶的文章 一:冒泡排序(Bubble Sort) 原理:假设有n个数,第一轮时:从第一个元素开始,与相邻 ...
- TreeView控件之,后台构建TreeView(WinForm小程序)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX0AAAIdCAIAAABeBzrBAAAgAElEQVR4nOzdd5Qc130n+tl/nr3e5+
- Jason 分享吴霁虹教授的产品模型
产品的出现都是为了解决市场上存在的某一个”疼点“或一系列的”疼点“而出现. 疼点:是一个亟需待解决的问题,对应有相应的市场,会寻找相应的解决方案.比如:用户的小孩——>因为缺钱,所以担心小孩无法 ...
- oracle单行函数之类型转换
oracle数据类型转换:显示转换盒隐式转换 oracle自动完成转换
- a标签增加onclick事件提示未定义function
项目使用的是ext框架,版本是ext4.2 出现的问题代码如下: renderer : function(value){ var html = "<a href=\"java ...
- QT5控件-QPushButton和QFocusFrame(按钮和焦点框)
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QPushButton> ...
- JQUERY1.9学习笔记 之基本过滤器(二) 等于选择器
等于选择器 :eq() 描述:选择与设定下标匹配的元素.jQuery( ":eq(index)" )jQuery( ":eq(-index)" ) <!D ...
- c++实现dll注入其它进程
DLL注入技术才具有强大的功能和使用性,同时简单易用,因为DLL中可以实现复杂的功能和很多的技术. 技术要点: 1.宿主进程调用LoadLibrary,就可以完成DLL的远程注入.可以通过Create ...