`
lijingzhi
  • 浏览: 43958 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Hibernate第07课:一对一表关联映射

阅读更多

一对一关联有(主键关联)单向关联和双向关联和唯一外键关联三种模式

首先了解单向关联.假设有User(客户)和(Accounts )银行帐号管理两个对象.一个用户只可能有一个帐号.说明这个客户持有一个银行帐号.所以Accounts的主键自动生成,而User的主键来源于Accounts.关键点就是User.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="net.knight.hibernate.User" table="t_user">
		<id name="id">
			<!-- User的主键来源于Accounts,等于是共享了Accounts的主键 -->
			<generator class="foreign">
				<param name="property">accounts</param>
			</generator>
		</id>
		
		<property name="name"/>
		<!-- 引导hibernate怎么加载关联对象,默认根据主键加载,
			 cascade这个属性表明当前的主键还是一个外键.他加入了外键约束
		-->
		<one-to-one name="accounts" cascade="true" />
	</class>
</hibernate-mapping>

 双向只需要在Accounts.hbm.xml中加入<one-to-one>标签,输出SQL的时候hibernate会使用join将两张表都查询出来.

 

而一对一唯一外键关联和多对一关联其实是一样的.但是是属于一个特例.只要设置unique属性为true.限制对象不允许重复就可以了.

 

整个Hibernate的对象关系映射主要包括如下种.

多对一关联映射

一对一主键关联单向映射

一对一主键关联双向映射

一对一唯一外键关联单向映射

一对一唯一外键关联双向映射

 

一对多单向关联映射

一对多双向关联映射

 

多对多单向关联映射

多对多双向关联映射

 

用到的时候再查资料.基本原理一致,学习起来应该不困难.

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Hibernate映射解析 七种映射关系

    接下来,我们讨论七种映射关系的第一种:单向一对一关联映射(one-to-one)。在一对一关系中,两个对象之间存在一对一的对应关系,如Person与IdCard。实现方式有两种: 1. 主键关联:两个对象共享相同的主键,表明...

    Hibernate映射解析 七种映射关系 后端 - Java.zip

    5. **双向关联**:在一对一和一对多关系中,通常会定义双向关联,即双方都能访问对方。这需要在两个类中都添加相应的注解,并通过`inversedBy`属性进行关联。 6. **级联操作(Cascading)**:级联操作允许将操作...

    Hibernate3.1_学习源码

    案例目录: 01 01Hibernate_Handwork : 手工配置使用Hibernate,其中详细标了Hibernate进行持久化的一些过程,因为是Hibernate的入门实例,所以注释很详细,其中有... 一对一、多对一、一对多、多对多等几种情况。

    传智播客李勇hibernate源码1-20课

    14_多对一关联关系的映射与原理分析 15_多对一关联关系的检索与原理分析 16_保存多对一关联关系的更进一步分析 17_一对多关联关系的映射与原理分析 18_一对一主键关联关系的映射与原理分析 19_一对一主键关联...

    hibernate关系映射

    **二、Hibernate的一对一关系映射** 一对一关系是指两个实体类之间存在一对一的联系,可以使用`@OneToOne`注解来实现。映射方式包括外键约束和主键共享两种,外键约束是在一方的实体类中添加对方的引用,主键共享是...

    hibernate教程

    Hibernate支持一对一、一对多、多对一和多对多关系映射,通过@OneToOne、@OneToMany、@ManyToOne和@ManyToMany注解实现。 七、级联操作 级联操作允许在主对象的操作中自动处理关联对象,如CascadeType.ALL可同时...

    hibernate3.6 文档(pdf 格式)

    - **映射一对一和多对一关联**:描述如何映射实体间的一对一和多对一关系。 - **自然 ID**:配置自然 ID 字段以支持快速查找操作。 - **Any**:解释如何映射不确定类型的属性。 - **属性映射**:讨论如何映射实体的...

    Hibernate开发指南.pdf

    - **一对一关联**: - **单向关联**: 一方负责维护关联关系。 - **双向关联**: 双方均维护关联关系。 - **一对多关联**: - **单向一对多关系**: 仅有一方维护关联关系。 - **双向一对多关系**: 双方均维护关联...

    hibernate所有开发包

    3. OneToOne:一对一关系映射,@OneToOne和@PrimaryKeyJoinColumn注解用于实现。 五、缓存机制 1. 第一级缓存:每个Session有自己的缓存,即Session级别的缓存,自动管理。 2. 第二级缓存:SessionFactory级别的...

    hibernate 详解

    - "hibernate_day05_pm.zip"可能涵盖了关联映射,如一对一、一对多、多对多的关系映射。 - "hibernate_day06_pm_all.zip"可能深入到了高级特性,如缓存策略、事务处理等。 - "hibernate_day07_am.rar"可能包含了...

    Hibernate-api Hibernate文档

    - One-to-One:一对一关联。 - One-to-Many:一对多关联。 - Many-to-One:多对一关联。 - Many-to-Many:多对多关联。 十、Inheritance Mapping Hibernate支持三种继承映射策略:Single Table、Table Per Class ...

    Hibernate3.6中文文档

    - **第二部分:关联映射** - **映射 Person 类**:定义一个具有关联关系的实体类。 - **单向 Set-based 关联**:展示如何建立单向的一对多关联。 - **使关联工作**:解释关联的加载方式及其配置。 - **值类型的...

    北大青鸟7.0Hibernate第七章代码

    “包含数据库表完整的第七章所有知识点”,暗示了这个章节不仅涉及了Hibernate的编程部分,也可能涉及到了数据库设计和表结构的创建,这通常包括实体类的设计、主键的定义、一对多、多对一、一对一和多对多的关系...

    hibernate的一个简单例程

    Hibernate支持多种对象关系映射,如一对一、一对多、多对多等,通过配置文件或注解定义实体间的关联。 **知识点九:懒加载和立即加载** Hibernate提供了懒加载和立即加载策略,以控制关联对象的加载时机。懒加载...

    hibernate-release-4.3.4.Final

    1. 支持关联映射:包括一对一、一对多、多对一、多对多等关系映射。 2. 集合映射:允许对象集合与数据库表的列进行映射。 3. 延迟加载(Lazy Loading):只有在真正需要时才加载关联的对象,提高性能。 4. 异步查询...

    Hibernate 的学习笔记

    - **一对一**:一个对象仅与另一个对象关联。 - **多对多**:多个对象与多个其他对象关联。 #### 十三、Cascade 持久化 - **功能**:在一个实体保存或更新时,可以自动级联执行相关联实体的操作,如保存、删除等...

    hibernate源码的学习

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。...通过对"hibernate-one2many"的分析,我们可以深入研究和实践一对一和一对多关联关系的配置和操作。

    Hibernate视频教程免费下载

    - 对象关系映射:支持将Java对象模型与关系型数据库表进行映射,降低了数据库访问的复杂度。 - 事务处理:提供了一套完整的事务管理机制,能够处理单个数据库操作或者一系列操作的组合。 - 缓存机制:支持一级...

    hibernate学习课件

    **七、关联映射** 1. 一对一(One-to-One): 两个实体之间存在唯一的关系,例如用户和用户详细信息。 2. 一对多(One-to-Many): 一个实体可以关联多个其他实体,如教师与学生。 3. 多对一(Many-to-One): 多个...

Global site tag (gtag.js) - Google Analytics