`

Hibernate数据关联关系:一对多

阅读更多

数据关联关系中的一对多

举例:用户和住址(一个用户可能有一个或多个住址)

1.创建用户表和住址表

---用户表----
create table person(
  pid varchar2(32) primary key,
  pname varchar2(32) not null
)
----住址表----
create table address(
  aid varchar2(32) primary key,
  name VARCHAR(50) NOT NULL ,
  zipcode VARCHAR(10) NOT NULL ,
  pid VARCHAR(32) ,
  FOREIGN KEY (pid) REFERENCES person(pid) ON DELETE CASCADE
)

 

 2.创建两个表对应的pojo类

public class Person {
             //用户id
	private String pid = "";
	//名字
	private String pname = "";
	//住址对象	
	private Set<Address> addressSet = null;
              ........................  
}

 

public class Address {
             //住址id
	private String aid = "";
	//住址地点
	private String name = "";
	//区号
	private String zipcode = "";
	//住户对象
	private Person person = null;
           ..............................
}	

 

3.建立相应的映射关系

  Person.hbm.xml

<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
                            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="包名">

    <class name="Person" table="person">
      <id name="pid" column="pid" type="string">
         <generator class="uuid.hex"/>
      </id>
      <property name="pname" column="pname" type="string"/>
     <set name="addressSet" table="address" cascade="all" inverse="true">
            <key>
				<column name="pid" length="32" />
			</key>
			<one-to-many class="Address"/>
     </set>
    </class>
    
</hibernate-mapping>

 Address.hbm.xml

<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
                            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                            "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="包名">

    <class name="Address" table="address">
      <id name="aid" column="aid" type="string">
         <generator class="uuid.hex"/>
      </id>
      <property name="name" column="name" type="string"/>
      <property name="zipcode" column="zipcode" type="string"/>
     <many-to-one name="person" class="Person">
       <column name="pid"></column>
     </many-to-one>
    </class>
    
</hibernate-mapping>

 

 

分享到:
评论

相关推荐

    hibernate知识复习三:关联映射:一对多/多对一

    本文将深入探讨Hibernate中的关联映射,特别是“一对多”和“多对一”的关系映射,这对于理解如何在Java应用程序中处理复杂的数据库交互至关重要。 一、Hibernate简介 Hibernate是Java平台上的一个开源ORM框架,它...

    Hibernate一对一,一对多,多对多实例

    本实例将深入探讨Hibernate中的三种基本关联关系:一对一(One-to-One)、一对多(One-to-Many)以及多对多(Many-to-Many)的实现方式。 1. **一对一关联**: 一对一关联通常出现在两个实体之间存在唯一对应关系...

    hibernate一对一关联关系

    在实体类之间,Hibernate支持多种关联关系,包括一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)。本资源主要探讨的是“hibernate一对一关联关系”。 一对一关联关系在现实世界中很常见,...

    Hibernate映射一对多关联关系

    ### Hibernate映射一对多关联关系 #### 知识点概览 - **概念解析**:一对多(One-to-Many)关联关系的概念及其在Hibernate中的实现方式。 - **域模型设计**:创建具有一个实体与多个实体关联的域模型。 - **关系...

    Hibernate ORM - 一对多双向关联关系

    标题“Hibernate ORM - 一对多双向关联关系”指的是在数据库建模中,Hibernate ORM(对象关系映射)框架如何处理一个实体类(如User)与多个实体类(如Article)之间的关系。在这种关系中,一个用户可以拥有多个文章...

    Hibernate 关联关系解除

    本文将深入探讨Hibernate中的关联关系解除,包括一对多、多对一、一对一以及多对多关系的解除,以及如何通过源码理解和使用相关工具进行操作。 一、Hibernate关联关系介绍 在Hibernate中,关联关系主要包括以下几种...

    Hibernate part 8:一对多关联关系映射

    本篇文章主要探讨的是Hibernate中的一对多关联关系映射,这是在实际项目开发中非常常见的一种关系映射类型。通过理解并掌握一对多关联,开发者可以更高效地处理数据库中的复杂数据结构。 在数据库理论中,一对多...

    hibernate关联关系总结

    本篇将深入探讨Hibernate的四种主要关联关系:一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),并结合实例来阐述每种关系的配置和使用。 1. **一对一关联(OneToOne)** 一...

    hibernate使用主键关联的一对一关系

    在Java的持久化框架Hibernate中,一对一(OneToOne)关系是一种常见的对象关系映射(ORM)配置,用于表示两个实体类之间的一种唯一关联。在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来...

    Hibernate基于连接表的一对多单向关联

    标题 "Hibernate基于连接表的一对多单向关联" 涉及的是数据库对象关系映射(ORM)框架Hibernate中的一个重要概念。在Java开发中,Hibernate是广泛使用的工具,它允许开发者将Java类与数据库表进行映射,简化了数据...

    hibernate知识复习四:多对多关联映射

    本文将深入探讨 Hibernate 中的多对多关联映射,这是一个复杂但常见的数据模型关系,适用于那些两个实体之间存在多个对应关系的情况。 首先,我们需要理解多对多关联的基本概念。在数据库设计中,多对多关联意味着...

    hibernate一对多,多对一,一对多双向关联

    “Hibernate 一对多,多对一,一对多双向关联”是指在Java持久化框架Hibernate中,实体间常见的三种关联关系。在数据库设计中,这种关联关系是常见的,例如一个用户可以有多个订单(一对多),一个订单对应一个用户...

    hibernate的关联关系映射

    【hibernate的关联关系映射】在...无论是一对一还是多对一/一对多,都可以根据业务需求选择合适的关联类型,并通过Java代码和XML配置文件实现数据持久化。理解这些关联关系对于开发高效、健壮的Java应用程序至关重要。

    hibernate实现多对多关联关系源码

    在Java的持久化框架Hibernate中,多对多(Many-to-Many)关联关系是一种常见的实体间关系类型,它表示一个实体可以与多个其他实体相关联,反之亦然。本源码示例将深入探讨如何使用Hibernate来配置和管理这种复杂的...

    hibernate多对多关联映射

    在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...

    Hibernate学习之 : 一对多关联映射

    本篇将深入探讨Hibernate学习中的一个重要概念:一对多关联映射。通过阅读指定的博文链接(https://ag-bruce.iteye.com/blog/213436),我们可以了解到如何在实际项目中设置并应用这种关联关系。 一对多关联映射是...

    hibernate关联关系实例

    在这个“hibernate关联关系实例”中,我们将深入探讨四种基本的关联关系:一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)以及多对多(Many-to-Many),同时也会涉及Hibernate查询语言(HQL)...

    Hibernate一对多使用非主键关联设置

    通过这种方式,我们就可以在Hibernate中设置一对多非主键关联,使得在操作部门和员工数据时,能够方便地维护它们之间的关系。这种方法允许我们在不违反数据库设计原则的情况下,灵活地处理实体之间的关联。同时,非...

Global site tag (gtag.js) - Google Analytics