`
lijun87
  • 浏览: 268370 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Hibernate关系映射简介

阅读更多

Hibernate关系映射简介

Hibernate关系映射备忘录,以下为一对一 一对多 多对多 映射xml文件的简单记录

一对多映射
使用的表:Customers表   ID   Name
          Orders表   ID   Customer_ID   Order_Number //orders中的Customer_ID作为外键使用。

单向映射文件

********************Customers表**********************************
<hibernate-mapping>
<class name="GT.Cutstomer" table="Customers">
  <id name="id" type="long" column="ID">
    <generator class="increment"/>
  </id>
<property name="Name" type="string">
<column name="Name" legnth="15">
<property/>
</class>
</hibernate-mapping>
********************Orders表**********************************
  <hibernate-mapping>
<class name="GT.Order" table="Orders">
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id>
<property name="OrderNumber" type="string">
<column name="Order_Number" legnth="15">
<property/>

<many-to-one
name="customer"
column="Customer_ID"
class="GT.Customer"
not-null="true" />
</class>
</hibernate-mapping>
双向映射文件
********************Customers表**********************************
  <hibernate-mapping>
<class name="GT.Cutstomer" table="Customers">
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id>
<property name="Name" type="string">
<column name="Name" legnth="15">
<property/>

<set name="orders" cascade="" inverse="true">  
<key column="Customer_ID"/>
</set>
</class>
</hibernate-mapping>
//双向关联中,set中的inverse 属性表明此端(customer)的关联只是order端的镜像,当探测到customer和order同时发生变化时,仅按照order端来同步数据库
********************Orders表**********************************
  <hibernate-mapping>
<class name="GT.Order" table="Orders">
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id>
<property name="OrderNumber" type="string">
<column name="Order_Number" legnth="15">
<property/>

<many-to-one
name="customer"
column="Customer_ID"
class="GT.Customer"
not-null="true" />
</class>
</hibernate-mapping>



一对一映射
Hibernate提供了两种一对一关联映射的方法:按照外键映射,按照主键映射。且这里说的是双向映射
按照外键映射
使用的表
Customers表 ID Name Home_Address_Id Com_Address_Id
Addresses表 ID City .....
********************Customers表**********************************
  <hibernate-mapping>
<class name="GT.Cutstomer" table="Customers">
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id>
<property name="Name" type="string">
<column name="Name" legnth="15">
<property/>
<many-to-one name="homeAddress"
class="GT.Address"
column="Home_Address_ID"
unique="true" />
<many-to-one name="comAddress"
class="GT.Address"
column="Com_Address_ID"
unique="true" />
</class>
</hibernate-mapping>  
Address.hbm.xml文件中,用<one-to-one>来映射Address类的customer属性
........................

<one-to-one name="Customer"
class="GT.Customer"
property-ref = "homeAddress" />  
........................


按照主键映射

使用的表
Customers表 ID Name
Addresses表 ID City .....
Customer.hbm.xml文件中
********************Customers表**********************************
................

<one-to-one name="address"
class="GT.address"
cascade="all"/>  
.......................

********************Address表**********************************
Address.hbm.xml文件中
.......................

<one-to-one name="customer"
class="GT.customer"
constrained="true"/>   表明address的主键同时作为外间使用
.......................


多对多映射
使用的表
Category表     ID Name
Items表       ID Name Base_Price
Category_Item表   Catetory_ID Item_ID
单向映射

********************Category表**********************************
Category.hbm.xml文件中
.........................

<set name="items" talbe="Category_Item"
lazy="true"
cascade="save-update"
<key column="Category_ID"/>
<many-to-many class"GT.Item" column="Item_ID"/>
</set>

.....................


双向映射
********************Category表**********************************

Category.hbm.xml文件中
.........................

<set name="items" talbe="Category_Item"
lazy="true"
cascade="save-update"
<key column="Category_ID"/>
<many-to-many class"GT.Item" column="Item_ID"/>
</set>
.........................



********************Item表**********************************

Item.hbm.xml文件中
.........................

<set name="categories" talbe="Category_Item"
lazy="true"
inverse="true"
cascade="save-update"
<key column="Item_ID"/>
<many-to-many class"GT.Category" column="Category_ID"/>
</set>

分享到:
评论

相关推荐

    Hibernate对象关系映射

    Hibernate对象关系映射一对多 很基础等文档

    Hibernate关系映射

    **标题:“Hibernate关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...

    hibernate关联映射详解

    hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的关联关系,...

    Hibernate_关联关系映射配置详解

    Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者

    Hibernate集合映射与关联关系

    在IT行业中,数据库管理和对象关系映射(ORM)框架是至关重要的部分,特别是对于Java开发者而言,Hibernate是一个广泛使用的ORM工具。本主题将深入探讨Hibernate集合映射与关联关系,包括"student与Score的Map集合...

    Hibernate继承映射代码

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在大型项目中,由于业务需求复杂,我们常常会使用到类的继承来组织代码结构,而Hibernate提供了对...

    Hibernate的关联关系映射图解

    Hibernate4中映射关系图解。

    hibernate关联映射实例

    在Java企业级开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中...

    Spring+Hibernate 自动映射

    标题中的“Spring+Hibernate 自动映射”是指在Java Web开发中,利用Spring框架与Hibernate ORM工具进行数据层的整合,实现对象关系映射(ORM)的自动化处理。这一技术结合了Spring的强大依赖注入(DI)和事务管理...

    Hibernate关系映射XML生成工具

    Hibernate是一款强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,而无需直接编写SQL语句。关系映射XML生成工具,如"Middlegen-Hibernate-r5",则是为了简化这一过程而设计的。这些工具能够自动...

    hibernate的关系映射

    **二、Hibernate关系映射的类型** 1. **一对一(OneToOne)**: 表示一个实体对应另一个实体的唯一实例。这可以通过在两个类中都定义`@OneToOne`注解来实现,并通过`mappedBy`属性指定被引用的一方。 2. **一对多...

    hibernate关系映射

    以下是关于“Hibernate关系映射”的详细解释。 1. 一对一关系映射: Hibernate支持一对一(One-to-One)关系映射,这种关系通常存在于具有唯一性的关联表中。通过在实体类中使用`@OneToOne`注解,我们可以定义一对...

    hibernate关系映射.doc

    hibernate关系映射,1V1,1vN,nVn,单相双相

    hibernate的多种映射关系

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,消除了直接编写 SQL 的需要。在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系...

    [原]Hibernate集合映射

    Hibernate作为Java领域中的一款强大持久化框架,其核心功能之一就是对象关系映射(ORM),使得开发者可以方便地在Java对象与数据库表之间进行交互。其中,集合映射是Hibernate中非常关键的概念,它允许我们将数据库...

    hibernate关系映射多对多关系

    综上所述,这个压缩包提供了关于Hibernate关系映射的全面教程,包括多对多、一对一和一对多的关系配置,以及如何在Spring+Hibernate+Struts环境中应用这些关系。对于想要深入理解Hibernate并提升开发效率的Java...

    Hibernate 注解映射

    在实体类中,可以使用 JPA 的标准注解来描述对象关系映射。这些注解可以添加在属性上,也可以添加在 getXxx() 方法之上。 * @Entity:映射一个实体类,指定关联的表名。 * @Id:映射 OID,指定主键。 * @...

    用Hibernate映射继承关系

    ### 用Hibernate映射继承关系 #### 14.1 继承关系树的每个具体类对应一个表 在Hibernate中映射继承关系时,一种常见的策略是将继承关系树的每个具体类映射到单独的数据库表中。这种方法称为**表/类映射**(Table/...

Global site tag (gtag.js) - Google Analytics