- 浏览: 298281 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (272)
- java (42)
- c (49)
- 算法 (29)
- 汇编语言 (3)
- 字符集 (3)
- error (3)
- 搜索引擎 (2)
- 互联网 (18)
- linux (12)
- 网络 (20)
- VMWare (1)
- 面试 (7)
- c++ (55)
- 设计模式 (3)
- db (9)
- office (2)
- FS (1)
- rest (3)
- Ajax (2)
- Spring (2)
- Hibernate (3)
- matlab (1)
- load balancing (8)
- 分布式计算 (2)
- 易语言 (1)
- apache tomcat (1)
- 测试 (1)
- 数据结构 (5)
- 数学 (13)
- 服务器 (9)
- 读后感 (4)
- 好书介绍 (1)
- script (3)
- wordpress (2)
- delphi (21)
- pascal (8)
- xml (3)
- 趣味 (1)
- PHP (3)
- python (13)
- DLL (4)
- openGL (8)
- windows (2)
- QT (28)
- django (7)
- jquery (1)
- 数据挖掘 (7)
- nginx (1)
- js (1)
- mac (1)
- hadoop (3)
- 项目管理 (1)
- 推荐系统 (1)
- html (1)
最新评论
-
晴天1234:
related remove:attention.ibus和u ...
UBUNTU的默认root密码是多少,修改root密码 -
美丽的小岛:
美丽的小岛 写道如上配置好就得了。提示没有OpenGl.dll ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
如上配置好就得了。提示没有OpenGl.dll之类的,再增加入 ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
主要是理清哪两个对象之间的关系,是信号与所有槽的关系或者是槽与 ...
QT之DisConnect -
美丽的小岛:
LPCTSTR类型:L表示long指针 这是为了兼容Windo ...
QString与各种字符串之间的转化
Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate主键,包括介绍Assigned方式、Increment方式和Foreign GUID等方面。
Hibernate主键介绍
1.Assigned
Assigned方式由程序生成主键值,并且要在save()之前指定否则会抛出异常
特点:主键的生成值完全由用户决定,与底层数据库无关。用户需要维护主键值,在调用session.save()之前要指定主键值。
2.Hilo
Hilo使用高低位算法生成主键,高低位算法使用一个高位值和一个低位值,然后把算法得到的两个值拼接起来作为数据库中的唯一主键。Hilo方式需要额外的数据库表和字段提供高位值来源。默认请况下使用的表是
hibernate_unique_key,默认字段叫作next_hi。next_hi必须有一条记录否则会出现错误。
特点:需要额外的数据库表的支持,能保证同一个数据库中主键的唯一性,但不能保证多个数据库之间主键的唯一性。Hilo主键生成方式由Hibernate 维护,所以Hilo方式与底层数据库无关,但不应该手动修改hi/lo算法使用的表的值,否则会引起主键重复的异常。
3.Increment
Increment方式对主键值采取自动增长的方式生成新的主键值,但要求底层数据库的支持Sequence。如Oracle,DB2等。需要在映射文件xxx.hbm.xml中加入Increment标志符的设置。
特点:由Hibernate本身维护,适用于所有的数据库,不适合多进程并发更新数据库,适合单一进程访问数据库。不能用于群集环境。
4.Identity
Identity当时根据底层数据库,来支持自动增长,不同的数据库用不同的主键增长方式。
特点:与底层数据库有关,要求数据库支持Identity,如MySQl中是 auto_increment, SQL Server 中是Identity,支持的数据库有MySql、SQL Server、DB2、Sybase和HypersonicSQL。 Identity无需Hibernate和用户的干涉,使用较为方便,但不便于在不同的数据库之间移植程序。
5.Sequence
Sequence需要底层数据库支持Sequence方式,例如Oracle数据库等
特点:需要底层数据库的支持序列,支持序列的数据库有DB2、PostgreSql、Qracle、SAPDb等在不同数据库之间移植程序,特别从支持序列的数据库移植到不支持序列的数据库需要修改配置文件
6.Native
Native主键生成方式会根据不同的底层数据库自动选择Identity、Sequence、Hilo主键生成方式。
特点:根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库时,可以使用这种方式。
7.UUID
UUID使用128位UUID算法生成主键,能够保证网络环境下的主键唯一性,也就能够保证在不同数据库及不同服务器下主键的唯一性。
特点;能够保证数据库中的主键唯一性,生成的主键占用比较多的存贮空间
8.Foreign GUID
Foreign用于一对一关系中。GUID主键生成方式使用了一种特殊算法,保证生成主键的唯一性,支持SQL Server和MySQL。以上介绍Hibernate主键。
来源:
http://www.blogjava.net/huxiaowi/archive/2010/07/29/327404.html
发表评论
-
sql执行顺序
2015-12-15 14:18 564SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在 ... -
推荐!国外程序员整理的Java资源大全
2015-12-15 10:14 639本文由 ImportNew - 唐 ... -
jsoup select 选择器
2015-12-09 14:03 938问题 采用CSS或类似jquery 选择器(selecto ... -
xmlbeans问题(深刻)
2015-11-12 23:08 1160运行scomp,路径永远是一个问题; 1.Program ... -
spring配置一个简单的数据连接池(dbcp)
2015-11-12 14:16 7641.文件结构 2.包结构 3.spring.x ... -
java泛型之通配符的使用
2015-11-12 12:15 672转自: http://blog.csdn.net/lone ... -
Hibernate 缓存机制
2015-11-01 19:11 0http://www.cnblogs.com/wean/ar ... -
Hibernate 缓存机制
2015-11-01 11:54 697一、why(为什么要用Hib ... -
Ubuntu下安装JDK
2015-05-02 18:42 529安装JDK: 1.下载 http://www ... -
Apriori算法
2014-12-15 12:56 633http://blog.csdn.net/lizhengn ... -
Python version 2.7 required, which was not found in the registry
2014-10-29 21:54 558# # script to register Python ... -
MYSQL在C—API 中可用的函数
2014-08-24 23:03 570mysql_affected_rows() 返 ... -
C++&&Mysql配置及例子
2014-08-15 23:10 1202一,Mysql驱动动(64位):mysql-conn ... -
Delphi开发DLL,Java调用DLL
2014-01-01 16:40 1292用一个小例子来示范一下,不写文件字。 第一步 第二步, ... -
如何在Java中调用DLL方法<转>
2013-12-30 13:36 696Java语言本 ... -
Java对存储过程的调用方法
2013-05-14 09:29 762//一:Java如何实现对存储过程的调用: // A ... -
谈谈对象和XML文件的转换 <转>
2013-04-12 14:18 1007很多时候,我们开发 ... -
详解Java解析XML的四种方法<转>
2013-04-12 14:01 910XML现在已经成为一种通用的数据交换格式,它的平台无关性, ... -
URLClassLoader例子
2012-11-22 15:22 1363学着写一个servlet服务器,里面对servlet的处理就得 ... -
关于JAVA配置文件的小记录
2012-11-20 15:16 970配置文件一般会为编写编程提供方便与灵活的特点,最近看tomca ...
相关推荐
常用Hibernate主键生成策略 常用Hibernate主键生成策略 常用Hibernate主键生成策略 常用Hibernate主键生成策略
Hibernate主键生成策略.doc ··········
关于Hibernate的各种主键生成策略与配置详解
NULL 博文链接:https://alpha2009.iteye.com/blog/1074750
hibernate的主键生成策略介绍,详细介绍了有关hibernate的常用主键生成策略,希望对一些正在学习hibernate的同学有一定的帮助
Hibernate中主键生成策略,开发的时候经常会用到的我都整理到这里了~
Hibernate各种主键生成策略详解,包括 assigned increment hilo seqhilo sequence identity native uuid foreign uuid.hex sequence-identity 等
学习hibernate的好文档,了解hibernate框架必须有的书
hibernate 主键生成策略 说明简单,易懂,全面,
Hibernate主键生成策略.docHibernate主键生成策略.doc
Hibernate各种主键生成策略与配置详解 1、assigned 主键由外部程序负责生成,在 save() 之前必须指定一个。Hibernate不负责维护主键生成。与Hibernate和底层数据库都无关,可以跨数据库。在存储对象前,必须要使用...
1主键常用的生成策略 2对数据库的依赖性总结 3关于主键生成策略的选择 详细解释
hibernate 的主键的几种生成类型的区别,主要有那些主键类型