Hibernatede 一对多映射配置
Hibernatede 一对多映射配置
以公司和员工为例:公司是一,员工是多
第一步 创建两个实体类,公司和员工
写核心配置文件hibernate.cfg.xml
写映射配置文件Company.hbm.xml 和Worker.hbm.xml
第二步 让两个实体类之间互相表示
(1)在公司实体类里面表示拥有多个员工,把员工的集合作为属性,写入公司的实体类。
//在公司实体类里面表示拥有多个员工,一个公司有多个员工
//hibernate要求使用集合表示多的数据,使用set集合
private Set<Worker> workers=new HashSet<Worker>();
public Set<Worker> getWorkers() {
return workers;
}
public void setWorkers(Set<Worker> workers) {
this.workers = workers;
}
(2)在员工实体类里面表示所属公司
- 一个员工只能属于一个公司
// 在员工实体类里面表示所属公司,一个员工只能属于一个公司,把公司类作为员工的一个属性,写入员工类。
private Company company;
public Company getCompany() {
return company;
}
public void setCompany(Company company) {
this.company = company;
}
第三步 配置映射关系
(1)一个实体类对应一个映射文件
(2)把映射最基本的配置完成
(3)在映射文件中,配置一对多关系
- 在公司映射文件中,配置所有的员工
1 set标签(class标签的子标签)表示员工的集合
name属性: 属性值写的是公司实体类里面表示员工的set集合名称
2 key标签(set标签的子标签)
column属性值:外键名称
3 one-to-many标签(set标签的子标签):
class属性:里面写多的一方的实体类全路径(即员工类)
代码:
<set name="workers">
<key column="c_w_id"/>
<one-to-many class="entity.Worker"/>
</set>
- 在员工映射文件中,配置其所属公司
使用many-to-one标签(class标签的子标签),表示员工所属公司
1 name属性:因为在员工实体类使用company对象表示,写company名称
2 class属性:Company全路径
3 column属性:外键名称(要和公司映射文件中的外键名称保持一致)
代码:
<many-to-one
name="company" class="entity.Company" column="c_w_id">
</many-to-one>
第四步 创建核心配置文件,把映射文件引入到核心配置文件中
<!-- 第三部分: 把映射文件放到核心配置文件中 必须的-->
<mapping resource=" entity/Company.hbm.xml"/>
Hibernatede 一对多映射配置的更多相关文章
- hibernate进阶--一对多映射配置
hibernate作为一款优秀的ORM框架,广受大家喜爱,也被Java社区公认为持久层的首选.虽然jdbc为Java数据库操 作带来了诸多便利,但是并没有统一SQL语句的写法,而且具体操作数据库的代码 ...
- 【Hibernate 4】一对多映射配置
一.一对多映射简介 建立一对多关系关系的表的原则是将一的一方的主键加入到多的一方的表作为外键.这里以学生和班级为例子来演示.以前不用hibernate时建立pojo类要在学生类Student中加入一个 ...
- MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.2高级结果映射之一对多映射
jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.3.1 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...
- [ SSH框架 ] Hibernate框架学习之四(JPA)
一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口), ...
- 项目:《ssh框架综合项目开发视频》-视频目录和第六天的EasyUI简单讲解
4 练习使用技术: Struts2 + hibernate5.x + spring4.x + mysql数据库 1 crm:customer relational manager,客户关系管理 2 c ...
- Hibernate_day04
Hibernate_day04 上节内容 1 表与表之间关系回顾 (1)一对多(客户和联系人) (2)多对多(用户和角色) 2 hibernate一对多操作 (1)一对多映射配置 (2)一对多级联保存 ...
- Hibernate_day03
一.今天内容 0 列表功能实现 1 表与表之间关系回顾 (1)一对多(客户和联系人) (2)多对多(用户和角色) 2 hibernate一对多操作 (1)一对多映射配置 (2)一对多级联保存 (3)一 ...
- Hibernate_day04--课程安排_Hibernate查询方式_对象导航查询_OID查询
Hibernate_day04 上节内容 今天内容 Hibernate查询方式 对象导航查询 OID查询 HQL查询 查询所有 条件查询 排序查询 分页查询 投影查询 聚集函数使用 QBC查询 查询所 ...
- Hibernate_day03--课程安排_表之间关系_一对多操作
Hibernate_day03 上节内容 今天内容 表与表之间关系回顾(重点) Hibernate的一对多操作(重点) 一对多映射配置(重点) 一对多级联操作 一对多级联保存 一对多级联删除 一对多修 ...
随机推荐
- loj 10050 连续子段最大异或和
#include<bits/stdc++.h> #define rep(i,x,y) for(register int i=x;i<=y;i++) using namespace s ...
- for-each 格式
public class D21LX { public static void main(String arge[]){ fish [] a1=new fish[3]; a1[0] = new fis ...
- python中的optionParser模块
Python 有两个内建的模块用于处理命令行参数:一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数:另一个是 optparse,它功能强大,而 ...
- Ubuntu中在服务器和本机之间传递文件
首先可以通过root进入到服务器中,(登录方法在下面讲解)为自己创建一个用户. useradd的选项: 选项: -b, --base-dir BASE_DIR 新账户的主目录的基目录 -c, --co ...
- 如何将vue/html在Hbuilder里进行apk打包封装生成直接可用程序
在此简单讲述一下个人的理解: 方法: 对于Hbuilder里的项目文件: 1.直接右键:转换成移动app,然后生成一个json文件manifest.json,在该json文件下配置好应用程序的图标.和 ...
- Python常用模块之time模块
python中的time和datetime模块是时间方面的模块 time模块中时间表现的格式主要有三种: 1.timestamp:时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算 ...
- react-踩坑记录——swiper报错!
已经在html文件中使用过,正确无误:但做成组件后(各种依赖文件引入路径确认无误)报错. 在只引入swiper.css时未报错,引入swiper.js文件后报错,如下: 错误原因,不详. 解决措施,不 ...
- 打印手机当前界面(位于栈顶)的activity
adb shell dumpsys activity activities | grep "Hist #0" 一般第一条就是当前页(位于栈顶)的activity
- Linux内存带宽的一些测试笔记【转】
转自:https://blog.csdn.net/subfate/article/details/40343497 版权声明:本文为迟思堂主人李迟原创文章,版权所有.可随便任意使用(包括学习研究商用) ...
- workqueue --最清晰的讲解
带你入门: 1.INIT_WORK(struct work_struct *work, void (*function)(void *), void *data) 上面一句只是定义了work和work ...