单向多对一关联:只有在一边配置关联映射。。而另外一边不管。。
案例(一个父亲拥有多个孩子)
父亲类
public class Father implements Serializable {
private static final long serialVersionUID = -8390304441273897145L;
public Father(){
}
//父亲ID
private Integer fatherId;
//父亲姓名
private String fatherName;
public Integer getFatherId() {
return fatherId;
}
public void setFatherId(Integer fatherId) {
this.fatherId = fatherId;
}
public String getFatherName() {
return fatherName;
}
public void setFatherName(String fatherName) {
this.fatherName = fatherName;
}
}
一方: 配置关联映射
<hibernate-mapping package="net.jsp.orm">
<class name="Father" table="FATHER">
<id name="fatherId" column="FATHERID" type="java.lang.Integer">
<generator class="identity" />
</id>
<property name="fatherName" column="FATHERNAME" type="java.lang.String" />
</class>
</hibernate-mapping>
孩子类
public class Child implements Serializable {
private static final long serialVersionUID = 6750561728903621833L;
public Child(){
}
private Integer childId;
private String childName;
//多对一
private Father father;
public Integer getChildId() {
return childId;
}
public void setChildId(Integer childId) {
this.childId = childId;
}
public String getChildName() {
return childName;
}
public void setChildName(String childName) {
this.childName = childName;
}
public Father getFather() {
return father;
}
public void setFather(Father father) {
this.father = father;
}
}
多方:配置关联映射
<hibernate-mapping package="net.jsp.orm">
<class name="Child" table="CHILD">
<id name="childId" column="CHILDID">
<generator class="identity" />
</id>
<property name="childName" column="CHILDNAME" />
<!-- 多方的配置 -->
<many-to-one name="father" class="Father" column="FATHERID" />
</class>
</hibernate-mapping>
双向多对一关联:即在父亲类也添加一个孩子对象。。那么概念即(一个孩子或许有多个父亲[养父...]) 。配置如同上面的多方配置关联。。。。
单向一对多关联:
如同上代码。。将 Child的 Father 对象去掉。 然后再Father 类中添加 set<Child> childs属性 即可。一方配置关联映射如下:
<hibernate-mapping package="net.jsp.orm">
<class name="Father" table="FATHER">
<id name="fatherId" column="FATHERID" type="java.lang.Integer">
<generator class="identity" />
</id>
<property name="fatherName" column="FATHERNAME" type="java.lang.String" />
<set name="childs" >
<key column="fatherId" />
<one-to-many class="Child"/>
</set>
</class>
</hibernate-mapping>
双向一对多。就组成了。多对多的关联。。。
多对多关联 时。应当数据库有个中间关联表 比如用户表跟信息表。。一个用户可以发多条信息 ,一条信息可以响应给多个用户。。这样如果有张中间表就更直观一些。。。
<!-- 用户方的关联配置 -->
<hibernate-mapping>
<class name="net.jsp.orm.User" table="[USER]">
<id name="uid" column="UID">
<generator class="identity" />
</id>
<property name="uname" column="UNAME" type="string"
not-null="true" length="50"
/>
<property name="upass" type="string">
<column name="UPASS" not-null="true" length="50" />
</property>
<set name="messages" table="TEMP_USER_MSG">
<key column="TEMP_USERID" />
<many-to-many class="net.jsp.orm.Message" column="TEMP_MSGID" />
</set>
..............
</class>
</hibernate-mapping>
<!-- 消息方的关联配置 -->
<hibernate-mapping>
<class name="net.jsp.orm.Message" table="[Message]">
<id name="msgId" column="MSGID">
<generator class="identity" />
</id>
<property name="msgContent" column="MSGCONTENT" type="string"
not-null="true"
/>
<set name="users" table="TEMP_USER_MSG">
<key column="TEMP_USERID" />
<many-to-many class="net.jsp.orm.User" column="TEMP_MSGID" />
</set>
........
</class>
</hibernate-mapping>
分享到:
相关推荐
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 一对一连接表单向关联: 这种关联方式是通过额外的连接表来实现一对一关系的。连接...
在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...
本教程“Hibernate关联映射.rar”聚焦于Hibernate中的关联映射,特别是多对一和一对多的关系映射,非常适合初学者了解和实践。 首先,我们要理解什么是关联映射。在数据库中,表与表之间存在各种关系,如一对一、一...
本主题将深入探讨Hibernate集合映射与关联关系,包括"student与Score的Map集合关系"、"student与class的多对一"以及"一对多映射"的概念。 首先,让我们理解一下Hibernate中的集合映射。在关系型数据库中,一个实体...
在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是一种常见的关系数据库模型映射方式。这种关联通常发生在两个实体之间,且每个实体都只有一个对应的实例。本篇文章将详细探讨双向一对一主键关联映射...
总的来说,这个压缩包提供了丰富的Hibernate关联映射的学习资源,涵盖了从基础到进阶的各种关联类型。通过学习这些示例,你将能够熟练掌握如何在Java项目中使用Hibernate进行数据持久化,并灵活地处理各种数据库关系...
在深入探讨Hibernate关联关系映射分类之前,我们首先简要回顾一下Hibernate框架的基本概念。Hibernate是一种持久层框架,主要用于Java应用程序中的对象关系映射(ORM),它能够将面向对象的数据模型转换为数据库中的...
综上所述,Hibernate双向一对一关联映射是通过注解实现的数据库表之间的关系映射,它提高了代码的可读性和可维护性。正确理解和运用这一技术,对于构建高效、灵活的Java应用程序至关重要。在实际开发中,要结合具体...
在Java的持久化框架Hibernate中,关联映射是至关重要的概念,它允许我们将数据库中的表关系映射到对象之间的关系。SSH(Struts、Spring、Hibernate)是经典的Java Web开发框架,其中Hibernate负责数据访问层,提供了...
这可能是测试Hibernate关联映射的一个示例项目或者类。通常,这样的测试会包含各种关联映射的实例,如实体类的定义,配置文件或注解,以及测试用例,用于验证关联映射是否按预期工作。 **详细知识讲解:** 1. **一...
本话题主要探讨的是Hibernate中的一种关联映射方式——一对一(One-to-One)单向外键关联。这种关联模式通常用于两个实体之间存在唯一对应的关系,例如一个用户对应一个唯一的账户。 在Hibernate中,一对一关联可以...
**Hibernate 3.x 关联映射详解** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用面向对象的方式处理数据。Hibernate 3.x 版本是其成熟且广泛使用的版本,提供...
【hibernate关联映射详解】 Hibernate 是一款流行的Java持久层框架,用于简化数据库操作。在Hibernate中,关联映射是实现对象关系映射(ORM)的关键,它允许我们在对象模型和关系数据库之间建立联系。关联映射主要...
本篇文章将深入探讨Hibernate中的关联映射,特别是One-to-One(一对一)关联,这是一种表示两个实体之间一对一关系的映射方式。我们将通过源码分析和实际例子来理解其工作原理。 ### 一、One-to-One关联概述 在...