首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate多种照射关系

2012-09-06 
hibernate多种映射关系?1.hibernate多对一映射???关联映射的本质:将关联关系映射到数据库,所谓的关联关系

hibernate多种映射关系

?

1.hibernate多对一映射

???关联映射的本质:将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用

?

两种策略可以实现一对一的关联映射

?? *主键关联:既让两个对象具有相同的主键值,以表明他们之间一一对应的关系:数据库表不会有额外的字段来维护他们之间的关系,仅通过表的主键来关联

?? *唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制后,也可以用来表示一对一关联关系

?

?

<many-to-one>会在多的一端加入一个外键,这个外键是由<many-to-one>中的column属性定义的,如果忽略了这个属性,那么默外键跟实体的属性一致

?

<many-to-one>标签的定义示例:

?????? *<many-to-one name="group" column="groupid">

注意model中是不用groupid而是用实体对象如下:

? private Group group;——getter和setter方法

?

理解级联的含义:

????? *级联是对象的链锁操作(指save,或update,对于delete无效)

????? *级联对load不影响,也就是说级联对加载并不影响,只要配置了many-to-one就会加载相关

?

?

?

2.hibernate一对一主键关联映射(单向关联Person——》IdCard)

一对一主键关联映射:让两个实体对象的id保持相同,这样可以避免多余的字段

?

具体映射:

??? <id name="id">

????????? <!--person的主键来源,也就是共享idCar的主键-->

????????? <generator constrained="true"/>

?

注意两个model中都要有对象的引用

?

?

3.hibernate一对一主键关联映射(双向关联Person《——》IdCard)

在单向一对一主键关联的基础上还要在idCard的映射文件中加入<one-to-one>标签指向person,指示hibernate如何加载person,默认根据主键加载:

?

<one-to-one name="person">

?

?

4.hibernate一对一唯一外键关联映射(单向关联Person——》IdCard)

一对一主键关联映射:让两个实体对象的id保持相同,这样可以避免多余的字段

?

具体映射:

??? <id name="id">

????????? <generator unique="true"/><!--unique表示唯一性-->

?

注意两个model中都要有对象的引用

?

?

5.hibernate一对一唯一外键关联映射(双向关联person《———》IdCard)

在一对一唯一外键关联的基础上,在IdCard的映射文件中加入<one-to-one>指向person

如:

<one-to-one name="person" property-ref="idCard"/>

?

?

?

热点排行