hibernate教程____hibernate主键策略
来源:互联网 发布:有人虚拟串口软件 编辑:程序博客网 时间:2024/06/10 20:43
1、assigned
主键由我们负责生成,在 save() 之前必须指定一个。按照我们自己定的规则生成主键
<id name="id" column="id">
<generator class="assigned" />
</id>
2、sequence
自己创建的序列比如oracle
create sequence student_stuid_seq
start with 1
increment by 1
select student_stuid_seq.nextval from dual
hibernate配置
<generator class="sequence">
</generator>
3、uuid
<generator class="uuid" />
4、Guid
GUID:Globally Unique Identifier全球唯一标识符,也称作 UUID,是一个128位长的数字,用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。
<id name="id" column="id">
<generator class="guid" />
</id>
Hibernate在维护主键时,先查询数据库,获得一个uuid字符串,该字符串就是主键值,该值唯一,缺点长度较大,支持数据库有限,优点同uuid,跨数据库,但是仍然需要访问数据库。
注意:长度因数据库不同而不同
MySQL中使用select uuid()语句获得的为36位(包含标准格式的“-”)
Oracle中,使用select rawtohex(sys_guid()) from dual语句获得的为32位(不包含“-”)
特点:需要数据库支持查询uuid,生成时需要查询数据库,效率没有uuid高,推荐使用uuid。
5、native
native由hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式,灵活性很强。如果能支持identity则使用identity,如果支持sequence则使用sequence。
<id name="id" column="id">
<generator class="native" />
</id>
例如MySQL使用identity,Oracle使用sequence
注意:如果Hibernate自动选择sequence或者hilo,则所有的表的主键都会从Hibernate默认的sequence或hilo表中取。并且,有的数据库对于默认情况主键生成测试的支持,效率并不是很高。
使用sequence或hilo时,可以加入参数,指定sequence名称或hi值表名称等,如
<param name="sequence">hibernate_id</param>
特点:根据数据库自动选择,项目中如果用到多个数据库时,可以使用这种方式,使用时需要设置表的自增字段或建立序列,建立表等。
- hibernate教程____hibernate主键策略
- hibernate教程____hibernate简介
- hibernate教程____hibernate入门小demo
- hibernate主键生成策略
- Hibernate 主键生成策略
- Hibernate之主键策略
- HIbernate主键策略【转载】
- Hibernate 主键生成策略
- hibernate 主键生成策略
- Hibernate 主键生成策略
- Hibernate 主键生成策略
- Hibernate 主键生成策略
- hibernate主键生成策略
- hibernate主键生成策略
- Hibernate主键生成策略
- hibernate主键生成策略
- hibernate主键生成策略
- Hibernate主键生成策略
- DOM--(Element)
- 对连续数值进行指定方式离散化,计算分布,用cut函数
- 将java项目打包成jar文件
- Spring管理filter和servlet,无硬编码bean
- CodeVS1696 奇怪的函数 【二分答案】
- hibernate教程____hibernate主键策略
- javaweb读取任意目录的下的properties配置文件(解决普通java类读web-inf下任意目录)
- Vue.js(version 2)的时代已到来,前端攻城狮你准备好了吗?-------- 一、
- java程序员常用英语
- 网络传输介质
- Android软件集合
- 一键分享代码
- 安卓文本复制粘贴的实现
- Drools与Spring集成 登录测试