一对多关系映射

我们想把 部门 与 员工 这两种类型的数据保存到数据库中

假设:

一个员工不能同时属于多个部门。那么 部门 跟员工之间的关系 ,从部门角度分析 便是 一对多的关系

第一步设计类:

第二步,实现类:

public class Department {

private Integer id;    private String departName;    private Set<Employee> employees;
    //getter & setter   }
public class Employee {
    private Integer id;    private String name;    private Department department;

//getter & setter
}

第三步,hbm.xml文件的的映射:

<!--Department.hbm.xml-->

<hibernate-mapping package="one2many">

<class name="Department" table="t_department">

<id name="id">

<generator class="native"/>

</id>

<property name="departName"/>

<!--employees,set集合 表达的是本类与  Employee 的 一对多 关系-->

<set name="employees" table="t_employee">

<key column="departmentId"></key>

<one-to-many class="one2many.Employee"/>

</set>

</class>

</hibernate-mapping>

<!--Employee.hbm.xml-->

<hibernate-mapping package="one2many">

<class name="Employee" table="t_employee">

<id name="id">

<generator class="native"/>

</id>

<property name="name"/>

<!--department属性,表达的是本类与 Department 的 多对一 关系-->

<many-to-one name="department" class="one2many.Department" column="departmentId"/>

</class>

</hibernate-mapping>

根据xml文件来分析出数据库中的表:
 
 
时间: 2024-10-27 03:14:36

一对多关系映射的相关文章

菜鸟学习Hibernate——一对多关系映射

Hibernate中的关系映射,最常见的关系映射之一就是一对多关系映射例如学生与班级的关系,一个班级对应多个学生.如图: Hibernate中如何来映射这两个的关系呢? 下面就为大家讲解一下: 1.创建实体类Classes和实体类Student Classes.java package com.bjpowernode.hibernate; import java.util.Set; public class Classes { private int id; private String nam

Hibernate学习笔记(四) — session的产生方式 与 一对多关系映射

一.session的创建 Session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一个SessionFactory并从中获取Session实例,但Session不是线程安全的. 每次openSession,产生的都是一个新的session,相当于创建一个新的连接.但是有很多时候,并不希望这样.比如在淘宝购物,在付账的一瞬间,至少有三件事情发生,转账,仓库数据变化,购物历史记录.而这三件事有必须在同一事务下.自然我们会联

hibernate实体xml一对多关系映射

单向一对多关系映射: 一个房间对应多个使用者,也就是Room實例知道User實例的存在,而User實例則沒有意識到Room實例. 用户表: package onlyfun.caterpillar; public class User { private Long id; private String name; public User() {} public Long getId() { return id; } public void setId(Long id) { this.id = id

Hibernate One-to-Many Mappings 一对多关系映射

Hibernate One-to-Many Mappings 一对多关系映射 关键点:一对多关系使用 Set 实现, 例子:一个员工可以有多个学证书. Hibernate框架的使用步骤: 1.创建Hibernate的配置文件(hibernate.cfg.xml) 2.创建持久化类,即其实例需要保存到数据库中的类(Employee.java) 3.创建对象-关系映射文件(Employee.hbm.xml) 4.通过Hibernate API编写访问数据库的代码 创建Hibernate的配置文件(h

Mybatis框架中实现一对多关系映射

学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢? 其实很简单 首先我们照常先准备前期的环境(具体解释请  参考初识Mybatis进行增.删.改.查 blogs )这里我就直接上代码了 主配置文件:Configuration.xml <?xml version="1.0" encoding="UTF-8" ?&

hibernate 一对多 关系映射

在关系中,或多或少的表之间有复杂的关联关系 这里测试 一对多 关联关系的配置 开发步骤就不多说了.直接看一个示例. users 用户 和  shop商品订单表 分析:一个用户可以有多个商品订单,一个订单只属于一个用户. 这样就构成了一对多的关联关系. 这里用的是oracle 数据库 users 和 shop 数据库表 create table users( id number(7) primary key,   name nvarchar2(20),   pass nvarchar2(20),

MyBatis Review——一对多关系映射配置

示例: 查询订单表及订单明细信息. 编写sql查询语句: SELECT orders.*, USER .username ,USER .sex, USER .address, orderdetail.id as orderdetail_id, orderdetail.items_id, orderdetail.items_num, orderdetail.orders_id FROM orders, USER, orderdetail WHERE orders.user_id = USER .i

hibernate 表关系映射详解之一对多

一对多 传统模式:jdbc连接数据库的传统模式下,是通过主键连接外键实现一对多关系的映射, 其数据库中表的对应关系是在多方加入一方的主键,而后形成外键连接. Hibernate:引入hibernate框架后,通过类的形式来表示一对多的关系. 举例:订单与订单详细的关系,一个订单包含多个商品,多个商品属于一个订单,两者的关系是一对多的关系. 实现原理: 面向对象实现------ 在order类中加入item类的set集合 ,表示在订单类中包含有多个订单详细(集合表示). 层次结构: 步骤一:编写实

Hibernate自身一对多和多对多关系映射

一对多关系映射大家都明白,关系双方都一个含有对方多个引用,但自身一对多很多同学都不明白什么意思,那么首先我就说明一下什么是自身一对多,其实也很好理解,自身一对多就是自身含有本身的多个引用,例如新闻类别,新闻包含体育新闻和政治新闻,体育新闻内有含有足球新闻和篮球新闻,其实他们都属于新闻,只是名字不同而已,下面我们就以新闻类别为例来具体说明一下: 首先我们来看一下新闻类别的类图: 类图:category 从上面的图我们可以看出:每一个新闻类别都有一个父类别和一个孩子类别的set集合,这个父类别和孩子