Hibernate
关联映射
单向
many-to-one
关联
在有外键的表对应的实体里加上一方实体作为字段,在
xml
里加上
many-to-one
双向
one-to-many
关联
在一的一方加上多的
set
集合作为字段
,
在
xml
里加上
one-to-many
双向
many-to-many
关联
多对一单向关联(和关系数据库的外键参照关系匹配
)
示例:
Item
类
SubItem
类
Public class Item{
private
Integer itemId;
private
String itemName;
private
String itemCode;
}
Public class SubItem{
subitem
表中
itemid
是
item
表的外键
private
Integer subId;
private
String subName;
private Item item;
private
Integer subCode;
}
Item.hbm.xml
与
item
表中的字段一一对应即可。
<
hibernate-mapping
>
<
class
name
=
"com.pojo.Item"
table
=
"item"
catalog
=
"gdev"
>
<
id
name
=
"itemId"
type
=
"java.lang.Integer"
>
<
column
name
=
"itemid"
/>
<
generator
class
=
"sequence"
>
<
param
name
=
"sequence"
>
sequence_ip_info
</
param
>
</
generator
>
</
id
>
<
property
name
=
"itemName"
type
=
"java.lang.String"
>
<
column
name
=
"itemname"
length
=
"32" not-null=”true”
/>
</
property
>
<
property
name
=
"itemCode"
type
=
"java.lang.String"
>
<
column
name
=
"itemcode”
length=”32” not-null=”true”
/>
</
property
>
</
class
>
</
hibernate-mapping
>
SubItem.hbm.xml
<
hibernate-mapping
>
<
class
name
=
"com.pojo.SubItem"
table
=
"subitem"
catalog
=
"gdev"
>
<
id
name
=
"subId"
type
=
"java.lang.Integer"
>
<
column
name
=
"subid"
/>
<
generator
class
=
"sequence"
>
<
param
name
=
"sequence"
>
sequence_ip_info
</
param
>
</
generator
>
</
id
>
<
property
name
=
"subName"
type
=
"java.lang.String"
>
<
column
name
=
"subname"
length
=
"32" not-null=”true”
/>
</
property
>
<
property
name
=
"subCode"
type
=
"java.lang.String"
>
<
column
name
=
"subcode”
length=”32” not-null=”true”
/>
</
property
>
<many-to-one name="item"
column=”itemid” class=”com.pojo.Item”/>
</
class
>
</
hibernate-mapping
>
注解:
<many-to-one>
元素建立了
item
属性和
subitem
表的外键
itemid
的映射关系,实现了可以通过
many
方得到
one
方相关的数据。
双向一对多关联(有外键关系)
如果想得到给定的
Item
对象所关联的
subItem
对象怎么办呢?
接上边
Item
实体里加上
private Set subItems=new HashSet();
get/set()
方法
Item.hbm.xml
里边加入
<set name=”subItems” >
<key
column=”itemid”/>
<one-to-many
class=”com.pojo.SubItem”/>
</set>
如果要删除一个
Item
元素,那么相关的
SubItem
元素也要删除,所以加上
<set name=”subItems”
cascade=”all”
inverse=”true”
>
<key column=”itemid”/>
<one-to-many class=”com.pojo.SubItem”/>
</set>
inverse
:
表示关系的维护由谁来执行。
true
表示不由自己执行,而由对应的另外一方执行。
Cascade :
表示是否进行级联操作。
all:
表示所有的操作都进行级联。
双向多对多关联
(
在数据库设计时,要加一个表
tea_stu_relation
)
必须把其中一端的属性的
inverse
设为
true,
关联的两端都可以使用
<set>
元素。
例如:一个老师可以教多个学生,一个学生要上多个老师的课。
Student
类
private Set teachers=new HashSet();
Teacher
类
private Set students=new HashSet();
Teacher.hbm.xml
<set name=”students”
table=”
tea_stu_relation”
inverse=”true”
cascade=”all”>
<key column=”teaid”/>
<many-to-many
class=”com.hibernate3.pojo.student” column=”stuid”/>
</set>
Student.hbm.xml
<set name=”teachers”
table=”
tea_stu_relation”
>
<key column=”stuid”/>
<many-to-many
class=”com.hibernate3.pojo.Teacher” column=”teaid”/>
</set>
分享到:
相关推荐
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...
本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中至关重要的概念。 1. **一对多关联映射**: 在现实世界中,一个实体可能会与多个其他实体相关联,...
### Hibernate关联映射的作用与常用属性详解 #### 关联映射概述 在对象关系映射(Object Relational Mapping,简称ORM)技术中,Hibernate作为Java领域内非常成熟且功能强大的框架之一,它允许开发者将Java类映射...
在 Hibernate 映射中,需要使用 `one-to-one` 元素,并设置 `constrained="true"`,表明该类的主键由关联类生成。 3. Hibernate 一对一连接表单向关联: 这种关联方式是通过额外的连接表来实现一对一关系的。连接...
本教程“Hibernate关联映射.rar”聚焦于Hibernate中的关联映射,特别是多对一和一对多的关系映射,非常适合初学者了解和实践。 首先,我们要理解什么是关联映射。在数据库中,表与表之间存在各种关系,如一对一、一...
总的来说,这个压缩包提供了丰富的Hibernate关联映射的学习资源,涵盖了从基础到进阶的各种关联类型。通过学习这些示例,你将能够熟练掌握如何在Java项目中使用Hibernate进行数据持久化,并灵活地处理各种数据库关系...
本文将深入探讨“Hibernate关联映射中的Many-to-One关系”。 Many-to-One关联是现实世界中常见的关系类型,比如一个学生可以对应多个课程,而一个课程可能被多个学生选修。在数据库中,这通常表现为一对多(One-to-...
hibernate关联映射是Hibernate框架中的一个重要概念,它用于在Java对象模型和数据库表之间建立关系,使得数据操作更加方便。以下将详细介绍各种类型的关联映射: 1. **单向N-1关联(无连接表)** 在这种关联中,一...
在Java的持久化框架Hibernate中,关联映射是至关重要的概念,它允许我们将数据库中的表关系映射到对象之间的关系。SSH(Struts、Spring、Hibernate)是经典的Java Web开发框架,其中Hibernate负责数据访问层,提供了...
本话题主要探讨的是Hibernate中的一种关联映射方式——一对一(One-to-One)单向外键关联。这种关联模式通常用于两个实体之间存在唯一对应的关系,例如一个用户对应一个唯一的账户。 在Hibernate中,一对一关联可以...
本篇文章将深入探讨Hibernate中的关联映射,特别是One-to-One(一对一)关联,这是一种表示两个实体之间一对一关系的映射方式。我们将通过源码分析和实际例子来理解其工作原理。 ### 一、One-to-One关联概述 在...
在Java的持久化框架Hibernate中,关联映射是核心特性之一,它允许我们将数据库中的表关系映射到对象之间的关系。本篇将深入探讨一种特殊的关联映射方式——一对一(One to One)映射,特别是在双向关联的情况下的...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系数据库模型映射方式。这种关联通常发生在两个实体之间,且每个实体都只有一个对应的实例。本篇文章将详细探讨双向一对一主键关联映射...