hibernate在默认情况下,从表跟主表的关联,是通过主键来关联的,但是如果双方关联的字段都不是主键的情况下,可以在<many-to-one 这方设置一下property-ref,这样就可不通过主键来关联,例如:ListCommon(是<many-to-one方)的listMemberSid字段,要跟Broker(是<one-to-many方)表的brokMemberSid字段关联,只要在ListCommon的xml中加入property-ref=“brokMemberSid”,这样就等于说明了ListCommon表是通过Broker表的brokMemberSid属性来跟Broker来关联的,如下:
Broker.hbm.xml
..........
<hibernate-mapping package="com.crb2b.data.bo">
<class name="Broker" table="crb2b_broker" >
<id name="brokId" type="java.lang.Integer">
<column name="brokId" />
<generator class="native"></generator>
</id>
<property name="brokMemberSid" type="java.lang.String">
<column name="brokMemberSid" length="11" not-null="true" />
</property>
<set
name="crb2bListcommons"
lazy="false"
inverse="true"
cascade="all"
>
<key>
<column name="listMemberSid" length="11" not-null="true" />
</key>
<one-to-many class="ListCommon" />
</set>
ListCommon.hbm.xml:
<hibernate-mapping package="com.crb2b.data.bo">
<class name="ListCommon" table="crb2b_listcommon" >
<id name="licoId" type="java.lang.Integer">
<column name="licoId" />
<generator class="native"></generator>
</id>
<many-to-one name="crb2bBroker" class="Broker" fetch="select" property-ref="brokMemberSid">
<column name="listMemberSid" length="11" not-null="true" />
</many-to-one>
详细参看:http://hi.baidu.com/piao_live/blog/item/9fa786d02706168aa0ec9ce9.html
分享到:
相关推荐
"Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...
本文将深入探讨“Hibernate关联映射中的Many-to-One关系”。 Many-to-One关联是现实世界中常见的关系类型,比如一个学生可以对应多个课程,而一个课程可能被多个学生选修。在数据库中,这通常表现为一对多(One-to-...
本教程通过源代码的形式,讲解如何在Hibernate中实现一对多主键关联映射,适用于初学者学习。 首先,我们需要理解一对多关联的基本概念。在数据库中,一个表的某一列(主键)可能与另一个表的多行相关联,比如一个...
在Hibernate中,`many2one`关系表示多个实体可以与单个实体关联。例如,在一个学校系统中,多个学生可以属于同一个班级,这里的学生和班级就形成了一个典型的多对一关系。在数据库层面,这种关系通常通过外键来实现...
配置方式与双向主键关联类似,只是在主映射的外键一端,我们使用`<many-to-one>`标签代替`<one-to-one>`。 例如,在IdCard类的映射文件中,我们将使用`<many-to-one>`标签指向Person类,而在Person类的映射文件中,...
本篇文章将全面探讨Hibernate的关联映射学习,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many)四种关系映射。 首先,一对一关联映射(One-to-One)是两个实体...
一对一主键关联是通过共享主键实现的,这意味着两个实体类共用同一个主键。在这种情况下,被引用的实体类(如 Address)不再有自己的独立主键生成策略,而是依赖于引用它的实体类(如 Person)生成主键。在 ...
本示例将详细讲解如何在Hibernate中实现多对多(many-to-many)的关系映射。 在数据库设计中,多对多关系是指两个实体之间存在多个关联,比如学生和课程的关系,一个学生可以选修多门课程,一门课程也可以被多个...
在Java持久化框架Hibernate中,`one_to_many`映射是一种常见的关系模型,它表示一个实体(类)可以与多个其他实体(类)关联。在这个关系中,一个实体(通常是"one"端)对应多个实体实例("many"端)。在数据库中,...
本文主要关注Hibernate中的一个核心概念——一对一(One-to-One)、一对多(One-to-Many)和多对一(Many-to-One)关联映射,特别是关于“一到多”单向和双向关联映射的配置心得。 首先,让我们了解“一到多”关联...
本文将深入探讨Hibernate中一对多(One-to-Many)关系的处理方式,特别是通过外键映射和inverse属性的应用场景。 #### 一对多关系概念 一对多关系在数据库设计中非常常见,它指的是一个实体可以与多个其他实体关联...
在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...
在实体类之间,Hibernate支持多种关联关系,包括一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,...
- **主键关联**(Single-Table):在这种情况下,两个实体共享同一个主键。在映射文件中,我们使用`<one-to-one>`标签,并通过`constrained`属性来指定约束。例如,Person和IdCard的单向关联映射可以通过以下方式...
- **概念解析**:一对多(One-to-Many)关联关系的概念及其在Hibernate中的实现方式。 - **域模型设计**:创建具有一个实体与多个实体关联的域模型。 - **关系模型构建**:在数据库层面构建一对多的关系模型。 - **...
在Hibernate配置中,User.hbm.xml定义`<one-to-one>`,Userinfo.hbm.xml定义`<many-to-one>`。 - **一对一主键关联**:两个实体共享同一个主键。这种方式下,我们可以使用Hibernate的`foreign`主键生成策略。例如,...
这里的`many-to-one`元素表示Address与Person的一对多关联,column属性指定了外键列的名称,class属性指定了Person实体的全限定类名,cascade属性可以指定级联操作。 在实际使用中,可以通过Hibernate的Session接口...