`
gaosililn
  • 浏览: 73008 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ssh学习:hibernate关系映射(2)

阅读更多

hibernate中,单向一对多与多对一的关联关系

1.一对多关联关系

在一对多关系中,只要在少的那一端使用集合封装多的那一端的对象就可以了。

在Xxx.hbm.xml中添加集合的配置标签,在该标签下使用<one-to-many></one-to-many>子表签,并且在子标签中的class属性指定属性类的全路径;

比如set标签中:

	<set name="set属性名">
       	<key column="外键名"></key>	
       	<one-to-many class="封装对象的全路径"/>
    </set>

 

使用set属性来实现的一对多关联关系实例:

持久化JavaBean实体:

多的一端:

 

public class Order {
			private int id;
			private String orderNum;
			private Date orderTime;
			//省去get/set方法
		}

 

少的一端:

 

public class Account {
			private int id;
			private String accName;
			// 对多端对象集合的引用,可用List,Map,等代替
			private Set<Order> setOrders;
			//省去get/set方法
		}

 

Xxx.hbm.xml配置:

多的一端:

 

<hibernate-mapping>
			<class name="com.usc.geowind.lilin.bean.oneToMany.Order" table="Order">
				<!-- type指明当前字段的类型    name对应实体中的属性名 -->
				<id type="integer" name="id">
					<!-- 提供ID自增的策略  native会根据数据库自行判断 -->
					<generator class="native"/>
				</id>
				<property name="orderNum" type="string"></property>
				<property name="orderTime" type="timestamp"></property>
			</class>
		</hibernate-mapping>

 

少的一端:

 

<hibernate-mapping>
			<class name="com.usc.geowind.lilin.bean.oneToMany.Account" table="Account">
				<!-- type指明当前字段的类型    name对应实体中的属性名 -->
				<id type="integer" name="id">
					<!-- 提供ID自增的策略  native会根据数据库自行判断 -->
					<generator class="native"/>
				</id>
				<property name="accName" type="string"></property>
				<set name="setOrders">
					<!--外键名-->
					<key column="acc_id"></key>
					<!--一对多的标签 class为一对多中多的那一端的是一类,值为全路径 -->
					<one-to-many class="com.usc.geowind.lilin.bean.oneToMany.Order"/>
				</set>
			</class>
		</hibernate-mapping>

 

 

2.多对一关联关系

在多对一的使用当中,配置与一般的配置只是有那么一点点的不同:

在多的一端引用少的一端的对象

在Xxx.hbm.xml配置中,添加<many-to-one></many-to-one>标签,name值指定为属性名:

实例:

持久化JavaBean实体:

多的一端:

 

public class OrderMTO {
			private int id;
			private String orderNum;
			private AccountMTO account;//多对一中少的一端对象
			//省去get/set方法
		}

 

少的一端:

 

public class AccountMTO {
			private int id;
			private String accName;
			//省去get/set方法
		}

 

Xxx.hbm.xml配置:

多的一端:

 

<hibernate-mapping>
			<class name="com.usc.geowind.lilin.bean.oneToMany.OrderMTO"
				table="OrdersMTO">
				<!-- type指明当前字段的类型 name对应实体中的属性名 -->
				<id type="integer" name="id" column="id">
					<!-- 提供ID自增的策略 native会根据数据库自行判断 -->
					<generator class="native" />
				</id>
				<property name="orderNum" type="string" column="orderNum"></property>
				<!--多对一的标签  name属性名,coliumn外键的名字 -->
				<many-to-one name="account" column="acc_id"></many-to-one>
			</class>
		</hibernate-mapping>

 

少的一端:

 

<hibernate-mapping>
			<class name="com.usc.geowind.lilin.bean.oneToMany.AccountMTO" table="AccountMTO">
				<!-- type指明当前字段的类型    name对应实体中的属性名 -->
				<id type="integer" name="id" column="id">
					<!-- 提供ID自增的策略  native会根据数据库自行判断 -->
					<generator class="native"/>
				</id>
				<property name="accName" type="string" column="accName"></property>
			   
			</class>
		</hibernate-mapping>

 

 

分享到:
评论

相关推荐

    Hibernate关系映射

    **标题:“Hibernate关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...

    SSH学习之Hibernate

    这篇PPT主要介绍了Hibernate的核心概念、持久层的重要性以及ORM(对象关系映射)技术,同时也提及了Hibernate与其他持久层框架的对比。 **Hibernate核心概念** Hibernate是开源的Java库,它提供了一种对象-关系...

    hibernate关联映射实例

    在Java企业级开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中...

    hibernate关联映射详解SSH 多对多,一对多关系对象映射

    SSH(Struts、Spring、Hibernate)是经典的Java Web开发框架,其中Hibernate负责数据访问层,提供了强大的ORM(对象关系映射)功能。本篇文章将深入探讨Hibernate中的一对多和多对多关系映射。 首先,让我们理解一...

    SSH框架中构建hibernate必须的包

    2. **Hibernate核心包**:在SSH框架中,构建Hibernate所需的最基础包包括`hibernate-core`。这个包包含了Hibernate的主要功能,如Session、Transaction管理,以及实体类和数据库表之间的映射等。 3. **JDBC驱动**:...

    SSH中Hibernate所需基本jar包

    其中,Hibernate是一个对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。在SSH项目中,正确配置Hibernate的jar包是确保数据库操作顺利进行的关键步骤。 该压缩包“SSH中Hibernate所需基本jar包”包含...

    基于IDEA的SSH项目之五:集成Hibernate----lib包

    在Java Web开发中,SSH(Struts2、Spring、Hibernate)是一个常见的框架组合,用于构建高效、可维护的Web应用程序。本教程将聚焦于如何在IntelliJ IDEA(简称IDEA)环境中集成Hibernate,以便利用其强大的对象关系...

    SSH框架:struts2+spring+hibernate 全部jar包

    1. 配置Struts2:设置Struts2的过滤器,配置struts2的核心拦截器栈,定义Action和Result。 2. 配置Spring:声明Bean,注入依赖,配置数据源和事务管理器。 3. 配置Hibernate:设置数据库连接信息,映射实体类,配置...

    SSH整合:spring3.2+strut2.3.4+hibernate4.2所需jar包

    2. **Hibernate框架**:Hibernate是一个对象关系映射(Object-Relational Mapping, ORM)工具,它简化了数据库操作,将Java对象和数据库表之间的映射关系自动处理。在SSH中,Hibernate作为数据访问层,负责数据库的...

    SSH2_Hibernate3.2jar包

    SSH2_Hibernate3.2jar包是用于Java开发的一个整合框架,主要包含了Struts、Spring和Hibernate这三个组件,常被称为SSH。在早期的Java Web应用开发中,SSH框架因其强大的功能和灵活性而被广泛采用。虽然现在随着...

    ssh中Hibernate

    通过学习和理解这些代码,你可以更好地掌握SSH框架下Hibernate的使用方法。 总的来说,SSH中的Hibernate使得开发者能够更加专注于业务逻辑,而不是数据库操作,提高了开发效率和代码质量。在实际项目中,通过SSH的...

    基于IDEA的SSH项目之五:集成Hibernate--程序包

    然后,我们需要为每个实体类创建对应的Hibernate映射文件(.hbm.xml),这些文件描述了Java对象与数据库表之间的映射关系。例如,如果我们有一个User类,映射文件可能如下所示: ```xml &lt;hibernate-mapping&gt; ...

    ssh框架中的hibernate5

    2. **对象关系映射(ORM)**:Hibernate的核心功能是将Java对象转换为SQL语句,并将数据库查询结果转化为Java对象。ORM允许开发者以面向对象的方式处理数据,减少了对SQL的直接操作。 3. **配置与SessionFactory**...

    SSH项目(hibernate+spring+struts)

    3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过Hibernate,开发者可以将Java对象直接映射到数据库表,无需编写繁琐的SQL语句,从而减少了数据库操作的复杂性...

    hibernate_____实现ssh2用的hibernate

    在SSH2中,Hibernate作为持久层框架,负责对象关系映射(ORM),使得Java对象可以直接与数据库进行交互。 **Hibernate ORM框架** Hibernate是一个强大的ORM框架,它消除了传统的JDBC繁琐的代码,提供了对数据库操作...

    SSH学习记录(5)-简单Hibernate

    本篇主要关注的是SSH中的Hibernate部分,一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,而无需直接编写SQL语句。 在“SSH学习记录(5)-简单Hibernate”中,我们可能将深入探讨以下几点:...

    SSH之Hibernate总结

    SSH(Struts、Spring、Hibernate)是Java Web开发中常见的三大框架,而Hibernate作为ORM(对象关系映射)框架,是连接Java应用程序与数据库的关键组件。本总结将围绕Hibernate的核心概念、配置、对象状态、关系映射...

    SSH--Hibernate详解

    ### SSH--Hibernate详解 #### ORM概念与重要性 ORM(对象关系映射)是一种编程技术,用于将对象模型表示的数据与关系型数据库管理系统中的数据相互转换。简而言之,ORM提供了一种机制,使得开发者可以通过操作Java...

    ssh(sevrlet+spring+hibernate)整合所需jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Spring框架、Struts2框架和Hibernate持久化框架,以实现高效、灵活的业务逻辑处理和数据管理。以下将详细阐述SSH整合涉及的关键知识点。 1. Spring框架:Spring是...

    ssh框架用struts2 hibernate实现图片的上传源码

    2. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作。在图片上传的项目中,Hibernate用于将图片信息(如文件名、上传时间等)持久化到数据库。开发者需要创建一个实体类,比如`...

Global site tag (gtag.js) - Google Analytics