Hibernate框架中在.hbm.xml映射文件中配置表与表之间的关联关系
2017-03-12 22:14
423 查看
1.Hibernate中关联关系可以分为:
单向关系:只能一张表指向另一张表。
双向关系:表与表之间可以互相指向。
2.根据关联的表的不同可以分为:
1对1关系
1对多关系
多对多关系
例如:1个客户可以对应多个订单,是1对多的关系。
(1)1对多关联:
单向多对1:使用<many-to-one/>映射,在数据库中就会添加外键列。
在多端.hbm.xml文件中使用如下代码:
在1端.hbm.xml文件中使用如下代码:
(2)1对1关联:4种类型(主表:有外键的表;外键表:外键对应的表)
基于外键单向关联:特殊的单向多对1关系,多端也是1
在主表对应实体类.hbm.xml文件中使用如下代码:
unique="true":表示1对1,默认为false表示多对1。
cascade="all":表示对当前实体对象进行操作时同时对关联对象操作。
基于外键双向关联:
外键可以放在任意一边,在放外键的一端使用<many-to-one/>,将属性unique的属性值谁知为true,在外键对应的另一端设置<one-to-one/>
基于主键单向关联:
在主表对应实体类.hbm.xml映射文件中定义主键生成策略:
并在主表对应实体类.hbm.xml文件中设置<one-to-one/>关联:
constrained="true":表示当前实体映射的数据表的主键同时作为外键关联指定实体类映射的数据表。
基于主键双向关联:
两端都使用<on
4000
e-to-one/>,其中一端的主键生成策略必须由关联实体生成:
单向关系:只能一张表指向另一张表。
双向关系:表与表之间可以互相指向。
2.根据关联的表的不同可以分为:
1对1关系
1对多关系
多对多关系
例如:1个客户可以对应多个订单,是1对多的关系。
(1)1对多关联:
单向多对1:使用<many-to-one/>映射,在数据库中就会添加外键列。
在多端.hbm.xml文件中使用如下代码:
<many-to-one name="多端实体类对应属性名" column="外键列名" class="关联类名(对应的外键类名)"/>单向1对多:使用<many-to-one/>映射,在数据库中就会添加外键列
在1端.hbm.xml文件中使用如下代码:
<set name="1端对应属性名"> <key column = "外键列名"/> <one-to-many name="关联类名"/> </set>双向1对多:在1端使用<set>,在多端使用<many-to-one/>,实际开发时一般使用此关联
(2)1对1关联:4种类型(主表:有外键的表;外键表:外键对应的表)
基于外键单向关联:特殊的单向多对1关系,多端也是1
在主表对应实体类.hbm.xml文件中使用如下代码:
<many-to-one name="属性名" column="外键列名" class="关联表名" unique="true" cascade="all"/>
unique="true":表示1对1,默认为false表示多对1。
cascade="all":表示对当前实体对象进行操作时同时对关联对象操作。
基于外键双向关联:
外键可以放在任意一边,在放外键的一端使用<many-to-one/>,将属性unique的属性值谁知为true,在外键对应的另一端设置<one-to-one/>
基于主键单向关联:
在主表对应实体类.hbm.xml映射文件中定义主键生成策略:
<!-- foreign:表示以关联的实体生成主键 --> <generator class="foreign"> <param name="property">当前类中关联属性名</param> </generator>
并在主表对应实体类.hbm.xml文件中设置<one-to-one/>关联:
<one-to-one name="属性名" class="关联类名(外键类名)" constrained="true"/>
constrained="true":表示当前实体映射的数据表的主键同时作为外键关联指定实体类映射的数据表。
基于主键双向关联:
两端都使用<on
4000
e-to-one/>,其中一端的主键生成策略必须由关联实体生成:
<generator class="foreign"> <param name="property">当前类中关联属性名</ param> </ generator>
相关文章推荐
- Hibernate框架中hibernate.properties属性文件,hibernate.cfg.xml配置文件,以及Users.hbm.xml映射文件的配置
- Hibernate学习-08:配置-核心配置文件hibernate.cfg.xml、映射文件*.hbm.xml
- hibernate映射配置文件(xxx.hbm.xml)内容及作用
- hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型
- hibernate映射文件XXX.hbm.xml配置映射元素详解--对象标识符(OID)
- Hibernate的映射配置文件*.hbm.xml文件中class和property元素的各属性意义和设置
- 使用Xdoclet生成Hibernate配置文件(hibernate.cfg.xml)和Hibernate映射文件(*.hbm.xml)
- hibernate映射文件??.hbm.xml配置映射元素详解
- struts2与hibernate 复合主外键在映射文件*.hbm.xml中的配置,为双外键的配置方法
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明
- Hibernate映射文件配置(hbm.xml和注解方式)
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明)
- Hibernate --- xxx.hbm.xml映射配置文件详解
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
- Hibernate-配置文件-映射文件.hbm.xml
- hibernate映射文件 xx.hbm.xml配置映射元素详解--Hibernate映射类型
- 用xxx.hbm.xml映射文件配置的hibernate实例
- Hibernate框架 主配置文件 Hibernate.cfg.xml 映射配置 说明
- eclipse hibernate配置文件(*.hbm.xml)加上自动提示功能
- enum类型映射到hbm.xml配置文件