蜗牛—Hibernate之实体关系配置

Hibernate框架很好用,初识的感觉就是,在你配置好的情况下,它可以自动帮你封装实体,也可以自动在你指定的实体内封装另一个实体

下面就来稍微研究一下(以下的字段都必须有set/get方法)

首先看一下我的主要实体类Employee Employee与Department的关系为many-to-one

Employee的hbm.xml配置文件如下-----

第一行:name代表的是上图中那个department字段,class不言而喻

第三行:column指的是Employee表中对应的列名

我们拿Department类来写,Employee对应一个Department,而Department对应多个Employee

Department实体类,所以要写Set<Employee> empSet字段

Department.hbm.xml

第二行:empSet对应是此实体的字段值

第五行:对应的是外键的列名

第七行:对应的是多方的实体

-----------------------------------------------------------

一对一关系Employee和Check_Card(员工卡)

Check_Card.java

在Employee.hbm.xml添加如下

而在Check_Card.hbm.xml添加如下------------多对一是一对一的特例

------------------------------------------------------------------------------------------

自连接,接下来拿Department实体做例子,因为部门有若干个子部门,和一个上级部门-----Department实体类在上面

下面就来看看它的hbm.xml文件,代码跟之前的一样。这就不多说了。。

接下来,就说一说上面的  fetch和lazy 上面写的都是默认值

fetch抓取策略分为 select和join

join-----在你得到一个实体后,与之相关的数据会一起通通封装进去

lazy-----只有fetch为select的情况下,才可以使用lazy,在你用不到相关数据时,暂时不会给你抓取

蜗牛—Hibernate之实体关系配置

时间: 2024-10-25 06:15:59

蜗牛—Hibernate之实体关系配置的相关文章

Hibernate之实体类配置

1.@Column属性 (1)设置字段属性唯一 @Column(unique=true) private String name; Done Hibernate之实体类配置

Hibernate之实体关系映射

延迟加载与即时加载 例如Person类和Email类是一对多关系,如果设为即时加载,当加载Person时,会自动加载Email,如果设置为延迟加载,当第一次调用person.getEmails()时才会执行SQL语句加载Email 注解配置时,@OnetToMany(Fetch = FetchType.EAGER)为即时加载,Fetch = FetchType.LAZY为延迟加载 延迟加载和即时加载的策略适用于所有一对多.多对一.多对多等所有的实体关系 一般来说,延迟加载要比即时加载节省资源,但

hibernate多对多关系配置--增删改查

hibernate多对多关联配置--并实现增删改查 hibernate就不多介绍了,这里就直接上我项目中使用的例子做说明. 数据模型 这是项目中用户和用户组的数据模型er图草稿,具体的model对象字段就以项目中的为主了. model类以及pojo接口,这里pojo接口用不上,大家测试的时候也可以去掉 package com.supre.model; import java.io.Serializable; import java.util.Set; public class User { pr

Hibernate多表关系配置——多对多对关系映射

多对多关系:第一个表中的一个行可以与第二个表中的一个或多个行相关.第二个表中的一个行也可以与第一个表中的一个或多个行相关. 一般的设计中,多对多关联映射,需要一个中间表 Hibernate使用many-to-many标签来表示多对多 多对多的关联映射,在实体类中,跟一对多一样,也是用集合来表示的 1.实体 1.1 课程实体 package demo.entity; import java.util.HashSet; import java.util.Set; /** * 课程实体 * @auth

Hibernate多表关系配置——一对一关系映射

两个对象之间是一对一的关系,如Person-IdCard 有两种策略可以实现一对一的关联映射 主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系:数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联 唯一外键关联 外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系: 1.实体对象 1.1 Person实体对象 package demo.entity; /** * 人实体 * @author Don * @date:日期:2

Hibernate多表关系配置——多对一关系映射

班级和学生两个实体类,关系如下: 多对一(many-to-one):多个学生属于一个班级 一对多(one-to-many):一个班级有多个学生 1.班级实体 package demo.entity; import java.util.HashSet; import java.util.Set; /** * 班级 * @author Don * @date:日期:2017年4月10日 时间:下午4:51:56* * @version 1.0 */ public class Cla { privat

hibernate 实体关系映射笔记

@常用属性说明: @Entity:实体类 @Table:指定对应数据表 @Id:主键,使用可以为null值的类型,如果实体类没有保存到数据库是一个临时状态 @Column:配置普通属性,除了主键外,java基本类型的属性 @Base:普通属性的加载方式 @GeneratedValue:主键生成策略 @Temporal:日期类型(DATE,TIME还是TIMESTAMP),如果属性类型是java.util.Date(是以上3个类的父类)类型时才需要使用该@声明具体的日期类型 @Transient:

Hibernate 关系配置

表之间关系 1. 一对多 一个部门有多个员工,一个员工只能属于某一个部门 一个班级有多个学生,一个学生只能属于一个班级 2. 多对多 一个老师教多个学生,一个学生可以被多个老师教 一个学生可以先择多门课程,一门课程可以被多个学生选择 3. 一对一 一个公司只能对应一个注册地址 表之间关系建表原则 1. 一对多 在多的一方创建一个外键,指向一的一方的主键 2. 多对多 创建一个中间表,中间表至少有两个字段,分别作为外键指向多对多双方的主键 3. 一对一 唯一外键对应 主键对应 一对多关系配置 一.

hibernate中多表映射关系配置

1.one-to-many一对多关系的映射配置(在一的一方实体映射文件中配置) <!-- cascade属性:级联操作属性 save-update: 级联保存,保存客户时,级联保存客户关联的联系人 delete:级联删除,删除客户时,级联删除客户关联的联系人 all:级联保存+级联删除 --> <!-- inverse属性:设置是否不维护关联关系 true:不维护关联 false(默认值):维护关联 --> <!-- 一对多 --> <set name="