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 一对多映射配置的更多相关文章

  1. hibernate进阶--一对多映射配置

    hibernate作为一款优秀的ORM框架,广受大家喜爱,也被Java社区公认为持久层的首选.虽然jdbc为Java数据库操 作带来了诸多便利,但是并没有统一SQL语句的写法,而且具体操作数据库的代码 ...

  2. 【Hibernate 4】一对多映射配置

    一.一对多映射简介 建立一对多关系关系的表的原则是将一的一方的主键加入到多的一方的表作为外键.这里以学生和班级为例子来演示.以前不用hibernate时建立pojo类要在学生类Student中加入一个 ...

  3. MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.2高级结果映射之一对多映射

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.3.1 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...

  4. [ SSH框架 ] Hibernate框架学习之四(JPA)

    一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口), ...

  5. 项目:《ssh框架综合项目开发视频》-视频目录和第六天的EasyUI简单讲解

    4 练习使用技术: Struts2 + hibernate5.x + spring4.x + mysql数据库 1 crm:customer relational manager,客户关系管理 2 c ...

  6. Hibernate_day04

    Hibernate_day04 上节内容 1 表与表之间关系回顾 (1)一对多(客户和联系人) (2)多对多(用户和角色) 2 hibernate一对多操作 (1)一对多映射配置 (2)一对多级联保存 ...

  7. Hibernate_day03

    一.今天内容 0 列表功能实现 1 表与表之间关系回顾 (1)一对多(客户和联系人) (2)多对多(用户和角色) 2 hibernate一对多操作 (1)一对多映射配置 (2)一对多级联保存 (3)一 ...

  8. Hibernate_day04--课程安排_Hibernate查询方式_对象导航查询_OID查询

    Hibernate_day04 上节内容 今天内容 Hibernate查询方式 对象导航查询 OID查询 HQL查询 查询所有 条件查询 排序查询 分页查询 投影查询 聚集函数使用 QBC查询 查询所 ...

  9. Hibernate_day03--课程安排_表之间关系_一对多操作

    Hibernate_day03 上节内容 今天内容 表与表之间关系回顾(重点) Hibernate的一对多操作(重点) 一对多映射配置(重点) 一对多级联操作 一对多级联保存 一对多级联删除 一对多修 ...

随机推荐

  1. python中的深拷贝和浅拷贝

    python的复制,深拷贝和浅拷贝的区别   在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一 ...

  2. ansible学习笔记一

    ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一.安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mir ...

  3. luogu P3236 [HNOI2014]画框

    传送门 我们把一种方案的\(\sum a_{i,j}\)和\(\sum b_{i,j}\)看成点\((\sum a_{i,j},\sum b_{i,j})\),那么就只要求横纵坐标之积最小的点,类似于 ...

  4. HashMap的源码,实现原理,底层结构

    转载一遍不错的文章,让你深入了解HashMap http://www.cnblogs.com/ITtangtang/p/3948406.html

  5. gitbash使用git 命令的准备工作

    1.git下载 2.git clone http://git.missfresh.cn/... 配置用户名密码 3.git  常用命令简写配置 git config --global alias.st ...

  6. Django学习手册 - ORM - ImageField数据类型

    前置步骤 setting.py文件配置: 添加app目录 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'djan ...

  7. 微信支付-H5网页支付开通流程

    简介  H5 支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付.主要用于触屏版的手机浏览器请求微信支付的场景.可以方便的从外 ...

  8. dubbo源码分析4——SPI机制_ExtensionFactory类的作用

    ExtensionFactory的源码: @SPI public interface ExtensionFactory { /** * Get extension. * * @param type o ...

  9. unity实现剧情对话

    using UnityEngine; using System.Collections; public class Test : MonoBehaviour { private string show ...

  10. Flask请求流程超清大图

    补充一下 request是在哪里产生的: class RequestContext(object): # app就是flask对象 self.app = app if request is None: ...