`
gaofen100
  • 浏览: 1228378 次
文章分类
社区版块
存档分类
最新评论

Hibernate的对象关系映射(4)

 
阅读更多

2.2关系映射

级联(cascade),取值有:all、none、save-update、delete。其中all表示在所有的情况下都进行级联操作;none表示在所有的情况下都不进行级联操作;save-update代表在执行保存更新时进行级联操作;delete表示在delete操作时进行级联操作。

2.2.1 一对一(one-to-one)

例如product和image之间的一对一关系映射如下所示。

<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<hibernate-mapping>
<classname="com.weportal.order.Product"table="PRODUCT">
<synchronizetable="ORDERITEM"/>
<synchronizetable="CUSTOMERORDER"/>

<idname="id">
<generatorclass="native"/>
</id>
<propertyname="name"/>
<propertyname="description"/>
<propertyname="price"column="PRICE"/>

<propertyname="numberAvailable"></property>
<one-to-one
name="photo"
class
="com.weportal.imageserver.Image"
cascade
="all"
outer-join
="true"
constrained
="true"
foreign-key
="photoId"
/>

</class>
</hibernate-mapping>

image的映射文件如下:

<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<hibernate-mapping>
<classname="com.weportal.imageserver.Image"dynamic-update="true">
<idname="id">
<generatorclass="native"/>
</id>
<propertyname="name"column="NAME"/>
<propertyname="value"column="VALUE"length="1000000"/>
</class>
</hibernate-mapping>

2.2.2 多对一(many-to-one)

从持久化的角度来说,是一个类的多个实例对应另一个类的一个实例。

例如:computer和programmer之间是多对一的关系。

<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<hibernate-mappingpackage="com.weportal.manytoone">
<classname="Programmer"table="Programmer">
<idname="programmerId">
<generatorclass="hilo"></generator>
</id>
<propertyname="name"></property>
<propertyname="sex"></property>
<propertyname="age"></property>
<propertyname="tel"></property>
</class>
<classname="PersonalComputer"table="PCS">
<idname="computerId">
<generatorclass="hilo"></generator>
</id>
<propertyname="cpu"></property>
<propertyname="memory"></property>
<propertyname="harddisk"></property>
<many-to-onename="owner"column="programmerId"class="Programmer"></many-to-one>
</class>

</hibernate-mapping>

从另一方面看,programmer和computer之间是一对多的关系,映射文件如下。

<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<hibernate-mappingpackage="com.weportal.manytoone">
<classname="Programmer"table="Programmer">
<idname="programmerId">
<generatorclass="hilo"></generator>
</id>
<propertyname="name"></property>
<propertyname="sex"></property>
<propertyname="age"></property>
<propertyname="tel"></property>
<setname="computers"inverse="true"cascade="all">
<keycolumn="programmerId"></key>
<one-to-manyclass="PersonalComputer"/>
</set>
</class>
<classname="PersonalComputer"table="PCS">
<idname="computerId">
<generatorclass="hilo"></generator>
</id>
<propertyname="cpu"></property>
<propertyname="memory"></property>
<propertyname="harddisk"></property>
<many-to-onename="owner"column="programmerId"class="Programmer"></many-to-one>
</class>
</hibernate-mapping>
分享到:
评论

相关推荐

    Hibernate对象关系映射

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

    hibernate对象关系映射实例

    标题“Hibernate对象关系映射实例”表明我们将探讨的是使用Hibernate框架进行对象关系映射(ORM)的实际应用。ORM是将数据库表结构映射为Java类对象的一种技术,它使得开发者可以使用面向对象的方式来操作数据库,而...

    基于Java的Hibernate对象关系映射框架设计源码

    该项目是基于Java的Hibernate对象关系映射框架设计源码,包含11786个文件,其中Java源文件10296个,XML配置文件794个,SQL脚本235个,AsciiDoc文档71个,HTML文件60个,CSS样式表59个,JavaScript脚本59个,属性文件...

    hibernate对象关系映射案例demo

    **hibernate对象关系映射案例demo** 在Java开发领域,对象关系映射(ORM)是一种将数据库中的数据与程序中的对象进行关联的技术,它极大地简化了数据操作。Hibernate作为一款流行的ORM框架,使得开发者无需关注底层...

    Hibernate 对象关系映射

    本人在厦门邦初培训时候用的ppt 快速入门文档 内容: 建立一对多的关联关系域模型 建立一对多的参照关系的模型 映射一对多关联关系 通过hibernateAPI级联操作关联对象 其它关系的映射:一对一,多对多

    对象-关系映射—Hibernate 培训 (中文)

    对象-关系映射—Hibernate 培训 (中文) 目录 一、持久化层-O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration) 四、持久化对象的状态和生命周期 五、Hibernate查询 六、Hibernate最佳...

    基于Java语言的Hibernate对象关系映射技术课程设计源码

    该项目是一个基于Java语言的Hibernate对象关系映射技术课程设计源码,共计48个文件,包括24个JAR包文件、13个XML配置文件、8个Java源文件、2个Git忽略文件以及1个Idea项目文件。该课程设计旨在让学生深入理解对象...

    hibernate的关系映射

    在Java编程领域,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将Java对象与数据库表之间的交互转化为简单的API调用。关系映射是Hibernate的核心特性之一,它允许我们将复杂的数据库结构与...

    hibernate关联关系映射

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,从而简化了数据访问层的编程。"hibernate关联关系映射"是Hibernate的核心概念之一,它定义了如何...

    JAVA数据类型与Hibernate的类型映射

    在Java编程语言中,...这涉及到对Java基本类型、复杂类型以及自定义对象的映射,还包括对数据库NULL值的处理、对象关系映射以及工具的使用策略。熟悉这些知识,可以帮助开发者更高效地利用Hibernate进行数据持久化。

    hibernate的多种映射关系

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

    对象/关系映射

    对象/关系映射 —Hibernate 对象/关系映射 —Hibernate 对象/关系映射 —Hibernate

    Hibernate关系映射

    在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate支持的四种基本关联类型之一,包括一...

    Hibernate教程09_关系映射之组件映射

    Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它允许开发人员以面向对象的方式处理数据库操作,极大地简化了数据层的开发。组件映射是Hibernate中的一种高级映射策略,用于将一个类的属性组织成一个...

    开源对象关系映射框架Hibernate知识培训

    标题和描述都在强调"开源对象关系映射框架Hibernate知识培训",这意味着主要内容将围绕Hibernate这一框架,探讨如何进行对象关系映射(ORM)以及相关的学习和应用。 **对象关系映射(ORM)** 对象关系映射(Object...

    Hibernate继承关系映射.pdf

    标题:“Hibernate继承关系映射.pdf” 描述:“简明扼要地介绍了Hibernate中继承关系的映射方式,深入探讨了三种不同的映射策略及其优缺点,同时解析了多态查询的概念。” 知识点: ### Hibernate继承关系映射...

    hibernate集合的映射

    在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象的集合属性上,以便实现对象关系映射(ORM)。本文将深入探讨Hibernate中的四种主要集合映射类型:Set、List、Array和Map,以及它们在实际...

    Hibernate对象关系详解

    **Hibernate对象关系详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,使得开发者可以方便地在Java对象与数据库表之间进行数据操作。本篇将深入探讨Hibernate中的对象关系映射,包括一对一...

Global site tag (gtag.js) - Google Analytics