`

使用连接表的单向关联【一对多(one-to-many)】

阅读更多

基于连接表的单向一对多关联 应该优先被采用。请注意,通过指定unique="true",我们可以把多样性从多对多改变为一对多。

 


 

person.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
  <class name="com.lixueli.business.model.Person" table="person">
    <id name="id" column="PERSON_ID">
    	<generator class="native"></generator>
    </id>
    <property name="age"></property>
    <property name="firstName"></property>
    <property name="lastName"></property>
     <set name="events" table="PERSON_EVENT" lazy="false">
     	<key column="PERSON_ID"></key>
     	<many-to-many column="EVENT_ID" class="com.lixueli.business.model.Event" unique="true"></many-to-many>
     </set>
  </class>
  
</hibernate-mapping>

 Event.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
  <class name="com.lixueli.business.model.Event" table="event">
  	 <id name="id" column="EVENT_ID">
  	 	<generator class="native" />
  	 </id>
  	 <property name="date" type="timestamp" column="EVENT_DATE"/>
     <property name="title" />
  </class>
  
</hibernate-mapping>

 这样便实现单向一对多关联:一个person可以对应多个Event,但一个Event只能对应一个Person.

 

  • 大小: 11.6 KB
分享到:
评论

相关推荐

    Hibernate关联映射

    配置上,需要创建连接表实体并使用 `many-to-one` 元素。 8. Hibernate 多对多单向关联: 多对多关联通常通过连接表实现,但单向关联意味着只有一方(如 Course)知道这个关联,另一方(如 Student)不知情。...

    hibernate的关联映射

    关联映射主要包括四种类型:一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-Many)。下面我们将逐一探讨这些关联映射的配置方法。 1. **一对一关联映射** - **主键关联**...

    hibernate实体关联关系映射

    2. **一对多关联**(One-to-Many / Many-to-One) - 外键单向关联 - 连接表单向关联 - 外键双向关联 - 连接表双向关联 3. **多对多关联**(Many-to-Many) - 单向关联 - 双向关联 每种关联类型都有其特定的...

    Hibernate性能调优

    - `many-to-one`关联可以用来表达多种类型的关系,包括一对一、一对多和多对一。 - 双向`many-to-one`关联的例子,比如麻将桌上的玩家位置与玩家之间的关系。 #### 三、`one-to-one`关联管理 `one-to-one`关联...

    hibrenate xml 配置 映射

    以下是关于Hibernate XML配置映射的一些详细说明,主要关注一对一、一对多、多对一以及多对多的单向关联。 ### 2.1 单向关联 #### 2.1.1 一对一外键单向关联 这种关联意味着在一个实体中有一个字段引用另一个实体...

    Hibernate关联关系总结

    **一对多关联(One-to-Many)** 在一对多关联中,一个实体可以与多个其他实体相关联,比如一个部门有多名员工。这种关联可以通过`@OneToMany`注解来建立。关联的配置可以是集合类型,如List、Set等。为了优化性能,...

    Hibernate关联关系映射目录

    在一对多外键单向关联中,一个实体(父实体)与多个实体(子实体)相关联,这种关联通过在子实体中添加一个指向父实体的外键来实现。 **表结构示例**: - **Department表**: - `departmentid`: 主键 - `...

    hibernate实例(一对多,多对一)

    在这个“hibernate实例(一对多,多对一)”的主题中,我们将深入探讨两种重要的关联关系:一对一(One-to-One)和一对多(One-to-Many)。 **一对一关联(One-to-One)** 在一对一关联中,一个实体与另一个实体之间...

    HIbernate关联关系总结

    如果是通过连接表实现1-N关联,我们需要使用`&lt;many-to-many&gt;`标签,并设置`unique=true`来限制一对多的关系。连接表的配置需要在`&lt;set&gt;`标签中指定`table`属性。 **优点**:1端可以方便地管理和操作N端的所有对象...

    Hibernate 一对一,一对多,多对多例子

    3. **多对多关联(Many-to-Many)**:多对多关联需要一个中间表来存储双方的关联信息,可以使用`@ManyToMany`注解,同时通过`@JoinTable`定义连接表的详细信息,包括连接字段和关联实体的引用。多对多关联的集合通常...

    hibernate_reference中文文档.pdf

    - **7.5.1 一对多 (one to many)/多对一 (many to one)**:说明使用连接表的双向一对多/多对一关联映射。 - **7.5.2 一对一 (one to one)**:介绍使用连接表的双向一对一关联映射。 - **7.5.3 多对多 (many-to-...

    hibernate中的关联关系

    - 不再需要使用 `&lt;join&gt;` 标签,而是直接使用 `&lt;one-to-one&gt;` 或 `&lt;many-to-one&gt;` 标签进行关联映射。 #### 三、Hibernate一对一外键单向关联 一对一外键单向关联是指两个表之间通过外键字段来进行关联,这种关联...

    hibernate关联映射

    在Person类中添加`private Address address`属性,并在`person.hbm.xml`中配置`&lt;many-to-one&gt;`元素,如`&lt;many-to-one name="address" cascade="all" class="Address" column="address_id"/&gt;`。这表示Person表中的...

    hibernate映射关系

    本文将深入探讨Hibernate中的三种主要映射关系:一对一(One-to-One)、一对多(One-to-Many)以及多对多(Many-to-Many)。 ### 一对一映射(One-to-One) 一对一映射在现实世界中非常常见,例如一个人只有一个...

    Hibernate笔记

    对于无连接表的N-1关联,我们可以在实体类的`Person`中添加`Address`对象,并在配置文件中设置`&lt;many-to-one&gt;`标签,指定外键列。而有连接表的N-1关联则需要使用`&lt;join&gt;`元素,通过连接表来建立关联。 B. 单向1-1...

    Hibernate中的关联映射

    &lt;many-to-one name="address" class="Address" column="address_id"/&gt; ``` - **基于PK**:同样只有一方包含了另一方的引用关联实体属性,但这里通过使用外键作为主键的一部分来实现。 - **映射示例**: ```xml ...

    hibernate各种映射关系祥解

    - 单向一对多:只有“一”端知道“多”端,多端没有反向引用。@OneToMany注解用在“一”端,无需在“多”端配置。 3. 多对一(Many-to-One)映射: 这实际上是一对多关系的反向视角,一个“多”的实体指向一个...

    ssh框架面试题(卷).doc

    - 避免单向一对多,使用双向一对多。 - 灵活运用单向一对多。 - 使用多对一代替一对一。 - 配置对象缓存,避免集合缓存。 - 选择合适的集合类型,如Bag(无序)和Set(唯一)。 - 使用显式多态处理继承关系。 - 减少...

Global site tag (gtag.js) - Google Analytics