`

初学Hibernate映射机制的学习笔记

阅读更多
初学hibernate ,做了下面的一些笔记和思考心得。
Hibernate映射机制01
、Hibernate的主键映射
1.在Hibernate的应用方案中,极力推荐使用代理主键(充当主键的字段本身不具有业务含义,只起主键作用)。
2.在Hibernate的应用中,Hibernate依靠对象标识符(OID)来区分不同的持久化对象(区分不同的java类?),而对象标识符(OID)则可以通过Hibernate内置的标识生成器来产生。比如assinged ,OID由业务逻辑程序负责产生,Hibernate只是负责持久化,也就是说我们自己在业务逻辑程序中指出主键。OID由底层数据库的自增主键生成机制产生,也就是我们在业务逻辑类中不需要去设置主键。

Hibernate实体映射的主要任务就是实现数据库关系表与持久化类之间的映射。而对于开发人员而言,实体映射的主要工作就是ORM映射文件的编写。我们可以使用MyEclipse的Database Explorer 来连接数据库并对相应的表,使用Hibernate Reverse Engineering 选项来逆向生成持久化类。

3.映射一对一的关联关系。有两种映射实体一对一的关联关系的实现方式。共享主键和唯一外键方式,a.共享主键方式
<one-to-one name ="login" class = "com.ORM.Login" cascade ="all" lazy = "false" outer-join ="true">
这里的name代表属性的名字,class代表这个属性所映射的具体的表的位置,cascade代表级联关系,即cascade属性的可能值有all: 所有情况下均进行关联操作,即save-update和delete。none: 所有情况下均不进行关联操作。这是默认值。 save-update: 在执行save/update/saveOrUpdate时进行关联操作。delete: 在执行delete 时进行关联操作。all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点。比如在一个一对多的关系中,Student包含多个book,当在对象关系中删除一个book时,此book即成为孤儿节点。这个lazy代表迟延加载,outer-join代表外连接。我们可以理解共享主键方式为两个表拥有一个同样的键。
b.唯一外键方式就是一个表的外键和另一个表的唯一主键对应形成一对一映射关系。

4.映射多对一单向关联关系(或者我们叫它一对多单向关联关系),通过外键的参照来实现。我们就在这个“多”的配置文件中编写
<many-to-one name ="customer" column = "CUSTOMRER_ID" class = "com.ORM.Customer" lazy ="false" not-null ="true">
这个column代表的是当前配置文件所指的持久化类所代表的数据库表的列,而不是你要映射到的另一个持久化类。lazy是延迟话加载。如果为false的话就代表立即加载。而not-null表示其不会空。也就是说我们只在一个多对一中的“多”的映射文件
配置,而在“一”中不配置。
5.映射一对多双向关联关系。不同与一对多的单向联系,在一对多的双相联系中的“一”的映射文件中也要编写相应的配置文件。
比如在“一”中的映射文件中:有一个订单集,
<set name = "orders" cascade = "all" lazy = "false" inverse ="true"><key column = "CUSTOMER_ID"/><one-to-many class ="com.ORM.Customer"></set>
inverse 代表级联的控制方向,false为主控方负责级联的维护,true是被控方负责级联的维护。这个set代表持久化类中有一个名为orders的set类型的属性。在持久化类中,我们在“一”中使用一个set属性,来反映这种一对多的联系。
6.映射一对多双向自身关联关系。两个关联关系都配置在一起。在持久化类中,我们就是使用一个属性反映这个“一”,用一个set类型的属性反映这个”多“。在映射化文件中通过一个<many-to-one>表示子类到父类的多对一关联,用一个<set>来表示父类到子类的一对多关联。
7.映射多对多单向关联关系。使用连接表来实现多对多,在代表“多”的持久化类中,我们使用一个set类型的属性来反映这种多对多的单向关联,在配置文件中的“多”中使用:
<set name = "items" table = "selecteditems" lazy ="true" cascade 
="save-update" ><key column = "ORDERID"/><many-to-many class ="com.ORM.Items" column = "ITEMID"/></set>

这里的key 代表的连接表中的外键,就是表Items中的外键。即关联里面的标识符字段。而在配置文件中的“一”中就不配置。
8.在映射多对多的双向关联关系,在两个持久化类中使用set属性。在两个配置文件中就要对两方面都进行配置。
分享到:
评论

相关推荐

    hibernate个人学习笔记完整版

    总的来说,【hibernate个人学习笔记完整版】是全面学习Hibernate的理想资源,无论你是初学者还是有经验的开发者,都能从中获取宝贵的知识,提升你的ORM技能。通过系统的学习和实践,你将能够自如地运用Hibernate解决...

    hibernate的详细学习笔记

    ### Hibernate的详细学习笔记 #### 一、Hibernate简介与安装 **Hibernate** 是一款开源的对象关系映射(Object-Relational Mapping,简称ORM)框架,它允许开发人员将Java对象映射到数据库表中,从而简化了数据...

    传智播客2016hibernate框架学习笔记

    《传智播客2016 Hibernate框架学习笔记》是一份详实的教程,旨在帮助初学者和进阶者深入理解和掌握Hibernate框架。该资源包含了四天的学习内容,分别是day01、day02、day03和day04,涵盖了从基础到高级的多个主题。...

    [Java学习笔记doc]Hibernate学习教程和笔记

    【Java学习笔记doc】Hibernate学习教程和笔记 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java开发者与数据库之间的交互。这个文档集合是针对Java初学者和进阶者的一份宝贵资料,旨在深入理解...

    邹波老师Hibernate教程学习笔记

    这是一份由个人在观看邹波老师的Hibernate视频教程后精心整理的学习笔记,旨在帮助初学者和有一定基础的程序员更好地理解和运用Hibernate。Hibernate作为Java领域广泛使用的持久化框架,它极大地简化了数据库操作,...

    马士兵hibernate学习笔记(原版)

    《马士兵Hibernate学习笔记》是一份深入浅出的教程,旨在帮助初学者掌握Hibernate这一流行的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式来操作数据库,从而减少了传统...

    Hibernate学习笔记源码及文档

    本资源包含了Hibernate的学习笔记、源码分析以及开发流程说明文档,旨在帮助初学者和进阶者更好地理解和运用Hibernate。 1. **Hibernate简介** Hibernate 是一种对象关系映射(ORM)工具,它允许Java开发者用面向...

    hibernate 个人学习笔记及代码

    通过深入学习和实践这个“hibernate 个人学习笔记及代码”包,初学者可以掌握Hibernate的基础知识和实战技能,为Java开发中的数据库操作打下坚实基础。在学习过程中,建议结合实际项目进行练习,以便更好地理解和...

    马士兵java框架hibernate学习笔记

    ### 马士兵Java框架Hibernate学习笔记 #### 一、HelloWorld - **知识点概述**: - **项目搭建**:介绍了如何从零开始搭建一个简单的Hibernate项目。 - **环境配置**:包括了如何配置MySQL数据库、创建必要的表...

    尚学堂hibernate学习笔记(原版整理)

    【尚学堂Hibernate学习笔记】是一份详尽的学习资料,旨在帮助初学者理解并掌握Hibernate这一流行的Java对象关系映射(ORM)框架。该笔记由作者根据马士兵老师的教程整理而成,其中包含了个人的学习注解,使得内容...

    Hibernate的学习笔记.doc

    《Hibernate学习笔记》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本笔记将深入探讨Hibernate的核心概念、功能以及如何使用它来提高开发效率。 一、Hibernate...

    Hibernate3学习笔记(一)-hibernate概述和简单实例入门

    **标题解析:** “Hibernate3学习笔记(一)...以上是对“Hibernate3学习笔记(一)-hibernate概述和简单实例入门”可能涵盖的详细知识点的解读,每个主题都可以深入探讨,对于初学者来说,这些内容将构成一个良好的起点。

    传智博客Hibernate框架2016版笔记资料day03~04

    2. **对象关系映射(ORM)**:Day03至04的笔记可能深入解析了Hibernate的ORM机制,包括实体类的创建、注解的使用,以及如何通过XML映射文件来定义对象与数据库表之间的关系。 3. **实体管理**:这部分会介绍实体类...

    达内内网学习笔记 hibernate

    【hibernate学习笔记概述】 Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者在数据库中操作对象,极大地简化了数据库编程。在Java应用开发中,Hibernate 提供了一个灵活的数据持久化层,使得开发...

    hibernate学习笔记(全)

    【hibernate学习笔记(全)】是一份全面介绍Hibernate框架的资料,涵盖了从基础到高级的诸多知识点。Hibernate作为Java领域中一个流行的持久化框架,它极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而...

    hibernate学习笔记

    总之,《Hibernate学习笔记》是一份全面的参考资料,无论你是初学者还是经验丰富的开发者,都能从中受益。尽管它使用了台湾地区的术语,但内容的深度和广度足以帮助读者掌握Hibernate的核心知识,进一步提升Java...

    韩顺平.2011版.hibernate笔记.zip

    这份笔记涵盖了Hibernate的核心概念、配置、实体管理、会话管理、查询语言(HQL)等多个方面,旨在帮助初学者快速理解和掌握Hibernate的使用。 1. Hibernate核心概念:Hibernate是一个开源的ORM框架,它提供了一种...

Global site tag (gtag.js) - Google Analytics