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关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的关联关系,...
Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者
在IT行业中,数据库管理和对象关系映射(ORM)框架是至关重要的部分,特别是对于Java开发者而言,Hibernate是一个广泛使用的ORM工具。本主题将深入探讨Hibernate集合映射与关联关系,包括"student与Score的Map集合...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在大型项目中,由于业务需求复杂,我们常常会使用到类的继承来组织代码结构,而Hibernate提供了对...
Hibernate4中映射关系图解。
在Java企业级开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中...
标题中的“Spring+Hibernate 自动映射”是指在Java Web开发中,利用Spring框架与Hibernate ORM工具进行数据层的整合,实现对象关系映射(ORM)的自动化处理。这一技术结合了Spring的强大依赖注入(DI)和事务管理...
Hibernate是一款强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,而无需直接编写SQL语句。关系映射XML生成工具,如"Middlegen-Hibernate-r5",则是为了简化这一过程而设计的。这些工具能够自动...
**二、Hibernate关系映射的类型** 1. **一对一(OneToOne)**: 表示一个实体对应另一个实体的唯一实例。这可以通过在两个类中都定义`@OneToOne`注解来实现,并通过`mappedBy`属性指定被引用的一方。 2. **一对多...
以下是关于“Hibernate关系映射”的详细解释。 1. 一对一关系映射: Hibernate支持一对一(One-to-One)关系映射,这种关系通常存在于具有唯一性的关联表中。通过在实体类中使用`@OneToOne`注解,我们可以定义一对...
hibernate关系映射,1V1,1vN,nVn,单相双相
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,消除了直接编写 SQL 的需要。在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系...
Hibernate作为Java领域中的一款强大持久化框架,其核心功能之一就是对象关系映射(ORM),使得开发者可以方便地在Java对象与数据库表之间进行交互。其中,集合映射是Hibernate中非常关键的概念,它允许我们将数据库...
综上所述,这个压缩包提供了关于Hibernate关系映射的全面教程,包括多对多、一对一和一对多的关系配置,以及如何在Spring+Hibernate+Struts环境中应用这些关系。对于想要深入理解Hibernate并提升开发效率的Java...
在实体类中,可以使用 JPA 的标准注解来描述对象关系映射。这些注解可以添加在属性上,也可以添加在 getXxx() 方法之上。 * @Entity:映射一个实体类,指定关联的表名。 * @Id:映射 OID,指定主键。 * @...
### 用Hibernate映射继承关系 #### 14.1 继承关系树的每个具体类对应一个表 在Hibernate中映射继承关系时,一种常见的策略是将继承关系树的每个具体类映射到单独的数据库表中。这种方法称为**表/类映射**(Table/...