第二章 映射对象标识符
简单的说,持久化类的对象怎样和关系型数据库中同一表的记录实现一一对应,答案就是OID,对象唯一标识。
观点1:关系型数据库的主键特性:不允许为空;
不允许重复,唯一性;
主键值一旦生成,不能修改,永久性;
观点2:主键划分:有特殊业务含义的主键,自然主键,不推荐,不利于扩展;
无特殊业务含义的主键,代理主键,推荐,利于扩展,性能消耗也能接受;
观点3:主键生成方式一:自增,主流生成方式
MySQL:auto_increment;MS SQL Service :identity(1,1);
Oracle:创建自增规则(sequence),调用两个参数(curval,nextval)插入新数据时显示调用规则即可;
观点4:Hibernate自带的主键生成器
increment由Hibernate控制,每次递增1(需要实现知道上一个的取值)
identity由底层呢个数据库生成,前提是支持自增类型
sequence有Hibernate控制,根据底层数据库的序列生成,前提是底层数据库支持序列
hilo有Hibernate控制,更具high/low算法生成,把特定表的字段作为high值,默认用hibernate_unique_key表的next_hi字段
native根据底层数据库对标识符的支持能力,选择identity,sequence,hilo算法
uuid.hex用128位的UUID(Universal Unique ID)算法生成,不流行,字符串的主键没有整型值的主键效率更好
assigned 有java应用层负责,不推荐,适用于自然主键
观点5:increment,由于由Hibernate控制,初始化时会获得最大ID值,然后由Hibernate维护该值,递增操作。不适用于分布式环境(why 自己想)
identity,由底层负责实现自增操作,推荐
sequence,支持序列机制,目前mysql不支持
hilo具有事务特性,应用于特殊场景
观点6:对于自然主键和组合主键,存在无法区分游离态和持久态的问题,一个好的方法是加入版本控制机制,即新添加<version name="version" column="vertion" unsaved-value="0">.这么做是帮助Hibernate区分save和update方法。
分享到:
相关推荐
精通hibernate 完整版 力荐学习hibernate的学习用书
《孙卫琴精通Hibernate Part2》是一份深入学习Hibernate框架的教程,主要涵盖了该框架的高级特性和实战应用。在本教程的第二部分,我们将会更深入地探讨Hibernate的各个重要方面,帮助开发者提升数据库操作的效率和...
《精通Hibernate:Java持久化对象技术详解[第二版]》是一部深入探讨Hibernate框架的专业书籍,旨在帮助Java开发者熟练掌握和运用这一强大的ORM(Object-Relational Mapping)工具。Hibernate是Java开发领域中广泛...
总之,《精通Hibernate:Java对象持久化技术详解》旨在帮助Java开发者全面掌握Hibernate框架,通过深入学习,可以提升开发效率,减少出错概率,更好地应对企业级应用的开发需求。配合提供的源代码,读者可以动手实践...
在Chapter2中,我们将重点学习Hibernate如何实现这一目标,以及其源码背后的机制。 1. Hibernate核心概念: - Session:是Hibernate的主要工作单元,它提供了与数据库交互的接口,负责对象的创建、更新、删除和...
《孙卫琴精通Hibernate Part1》是一份关于深入学习Hibernate框架的教程,涵盖了该框架的基础与进阶内容。本部分是整个系列的前三章节,旨在帮助开发者全面理解Hibernate的工作原理和核心特性,以便在实际开发中高效...
总的来说,“精通Hibernate源码Chapter 3”涵盖了对象持久化的基础理论和实践技巧,通过学习源码,开发者能够更深入地理解Hibernate的工作机制,提高开发和调试的效率。在实际项目中,熟练掌握Hibernate不仅能够简化...
《深入理解Hibernate源码:基于“精通Hibernate源代码jar包1”》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇文章将围绕“精通Hibernate源代码jar包1”进行...
《精通Hibernate》是由孙卫秦编著的一本针对初学者的Hibernate教程,旨在帮助读者深入理解和掌握这款强大的Java对象关系映射(ORM)框架。Hibernate是Java开发中的一个热门工具,它极大地简化了数据库操作,使得...
《孙卫琴 精通Hibernate》是一本深入讲解Hibernate框架的专业书籍,由知名IT教育专家孙卫琴撰写。Hibernate是Java开发中广泛使用的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互,使得开发者可以...
总结,孙卫琴的《精通Hibernate》是一本全面覆盖Hibernate基础到高级特性的指南,适合有Java基础并希望深入学习Hibernate的开发者阅读。通过本书,读者不仅可以掌握Hibernate的核心技术,还能了解到如何在项目中有效...
《精通Hibernate》是由孙卫琴编著的一本深入解析Hibernate框架的专业书籍,它为读者提供了全面、详实的Hibernate学习指南。这本书以其易懂的讲解和丰富的实例,深受初学者和有经验的开发者喜爱,是Java开发人员掌握...
通过阅读《精通Hibernate 3.0(第三版)》,Java开发者可以系统地学习和掌握Hibernate的各个方面,提高开发效率,减少出错概率,并能够灵活运用到实际的企业级项目中。无论是对于初学者还是有经验的开发者,这都是一...
《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...
《Java精通Hibernate对象持久化技术权威指南》是一本深度探讨Java开发中如何高效地使用Hibernate进行对象持久化的专业书籍。本书旨在帮助Java开发者熟练掌握Hibernate框架,实现数据库操作的简化和自动化,提升软件...
《精通Hibernate源码》是孙卫琴先生的一部深度解析Hibernate框架源码的著作,旨在帮助读者深入理解这个流行的Java持久层框架的...在深入学习的过程中,不断实践和总结,才能真正精通Hibernate并将其运用到实际项目中。
通过阅读《精通Hibernate:Java对象持久化详解》,开发者可以深入了解Hibernate的工作原理,学习如何有效地使用它来实现对象持久化,从而提高开发效率,降低维护成本。这本书对于Java Web开发者,尤其是初次接触...
通过学习《孙卫琴 精通Hibernate源码》,开发者不仅可以掌握Hibernate的使用技巧,还能深入理解其内部工作原理,这对于优化应用性能、解决复杂问题以及进行框架扩展具有重要意义。对于那些想要提升自己在企业级Java...
总的来说,《精通Hibernate孙卫琴》是一本全面而实用的Hibernate学习指南,对于想在Java开发领域深化ORM技术的程序员来说,无疑是一本不可或缺的参考书。通过这本书,读者可以系统地学习Hibernate,提升自己的数据库...