`
阿尔萨斯
  • 浏览: 4575129 次
社区版块
存档分类
最新评论

Hibernate从入门到精通(七)多对一单向关联映射

 
阅读更多

上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本次博文我们讲解一下多对一关联映射


多对一单向关联映射

多对一关联映射与一对一关联映射类似,只是在多对一的指向端可以存在多个对象,在指向端加载的时候,同时加载被指向端。

多对一和一对一的异同

对比一对一单向关联映射和多对一单向关联映射,两者的相同之处在于在指向端被加载的时候,指向端会被一起加载进来,这一点从如下类的结构图和代码中看出。(以下只给出多对一相关图示和代码,一对一图示和代码参考之前的文章Hibernate从入门到精通(五)一对一单向关联映射)


		public class Group {
			private int id;			
			private String name;
			public int getId() {
				return id;
			}
			public void setId(int id) {
				this.id = id;
			}
			public String getName() {
				return name;
			}
			public void setName(String name) {
				this.name = name;
			}
		}
		
		public class User {
			private int id;			
			private String name;			
			private Group group;
			public int getId() {
				return id;
			}
			public void setId(int id) {
				this.id = id;
			}
			public String getName() {
				return name;
			}
			public void setName(String name) {
				this.name = name;
			}
			public Group getGroup() {
				return group;
			}
			public void setGroup(Group group) {
				this.group = group;
			}
		}

通过分析上述代码和类图结构,单纯的看两者区别不大。但是通过映射表结构的对比,两者的不同之处在于指向端一个与被指向端的关系,一对一单向关联是一对一关系,而多对一单向关联则是多对一关系(以下只给出多对一相关图示和代码,一对一图示和代码参考之前的文章Hibernate从入门到精通(五)一对一单向关联映射)


通过上说说明,我们也可以简单说一对一单向关联其实是多对一单向关联的一种特殊情况,这一点从其Hibernate映射配置中可以更加明显看出。


多对一映射配置:

			<class name="com.zs.hibernate.User" table="t_user">
				<id name="id">
					<generator class="native"/>
				</id>
				<property name="name"/>
				<many-to-one name="group" column="groupid" cascade="save-update"/>
			</class>
			
			<class name="com.zs.hibernate.Group" table="t_group">
				<id name="id">
					<generator class="native"/>
				</id>
				<property name="name"/>
			</class>

一对一映射配置:

			<class name="com.zs.hibernate.Person" table="t_person">  
				<id name="id">  
					<generator class="native"/>  
				</id>  
				<property name="name"/>  
				<many-to-one name="idCard" unique="true"/>  
			</class> 
			<class name="com.zs.hibernate.IdCard" table="t_idCard">  
				<id name="id">  
					<generator class="native"/>  
				</id>  
				<property name="cardNo"/>  
			</class>  

我们从上面可以明显看出一对一只是在<many-to-one/> 标签中添加了unique="true"这样一个限制指向端的属性而已。今天我们就讲到这里,下次我们讲解一下关于一对多关单向联映射的相关内容。

分享到:
评论

相关推荐

    Hibernate入门到精通

    《Hibernate入门到精通》 Hibernate 是一款强大的Java持久层框架,它简化了数据库与Java对象之间的交互,使得开发者能够更加专注于业务逻辑的实现。本文将深入探讨Hibernate的基础知识,包括各种关联映射、继承映射...

    hibernate教程从入门到精通第篇共四篇PPT学习教案.pptx

    《Hibernate教程从入门到精通》是针对初学者和进阶者的一份详尽教程,旨在帮助读者全面理解并掌握Hibernate框架。本教程分为四篇,涵盖了从基础概念到高级特性的深入探讨。以下是对其中核心知识点的详细解析: 1. *...

    最经典的hibernate教程_从入门到精通3(hbiernate学习)

    在本章的“最经典的Hibernate教程_从入门到精通3”中,我们将深入探讨Hibernate的关联映射,这是ORM框架中的关键概念。关联映射允许我们建立对象模型与数据库表之间的关系,使得数据操作更加方便。 首先,让我们...

    hibernate夏昕.pdf内容全面通俗易懂

    本文档不仅包含了Hibernate框架的基础知识,还深入介绍了其高级特性,为开发者提供了从入门到精通的一站式指南。无论是初学者还是有一定经验的开发人员,都能从中获得有价值的信息。通过这些知识点的学习,开发者...

    hibernate-reference-3.1.1.pdf

    从单向基于集合的关联映射开始,文档展示了如何在Hibernate中表示一对多的关系。随后,通过双向关联的处理,揭示了如何维护实体间更复杂的关系。此外,文档还详细阐述了值集合和嵌套关联的管理,以及如何在这些复杂...

    Hibernate参考文档

    1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...

Global site tag (gtag.js) - Google Analytics