Hibernate的ID的标识符生成器
来源:互联网 发布:注会最后6套题淘宝 编辑:程序博客网 时间:2024/05/19 02:21
算法实现的主键生成机制,需要数据库中的 Sequence,适用于支持 Sequence 的数据库,如Oracle。
“increment”
主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用。
“identity”
采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。
“sequence”
采用数据库提供的 sequence 机制生成主键。如 Oralce 中的Sequence。
“native”
由 Hibernate 根据使用的数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式。
“uuid.hex”
由 Hibernate 基于128 位 UUID 算法 生成16 进制数值(编码后以长度32 的字符串表示)作为主键。
“uuid.string”
与uuid.hex 类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL 数据库中。
“foreign”
使用另外一个相关联的对象的标识符作为主键。
以下举例:
1、指定参数的情况:
<id name="id" unsaved-value="0">
<generator class="sequence">
<param name="sequence">SEQ_CHILD</param>
</generator>
</id>
使用的是sequence,适合oracle数据库;
2、对于sql server2000中的数据库子增字段,在配置文件使用下列方法实现:
<id name="id" type="long" unsaved-value="0">
<column name="id" sql-type="numeric" not-null="true" />
<generator class="identity" />
</id>
这里主要是:identity:代表由sql server2000数据库自己提供子增字段.如果要hibernate自己提供,则用increment关键字来实现
3、如果表中的主键用字符串类型:可以用hibernate自己提供的方法实现主键唯一:
<id name="id" type="string" unsaved-value="null">
<column name="cid" sql-type="char(32)" not-null="true" />
<generator class="uuid.hex" />
</id>
使用的是uuid.hex: 采用128位的算法来生成一个32位字符串。最通用的一种方式。适用于所有数据库。
- Hibernate的ID标识符生成器
- Hibernate的ID标识符生成器
- Hibernate的ID的标识符生成器
- Hibernate的ID的标识符生成器
- Hibernate的ID的标识符生成器
- hibernate的ID生成器
- Hibernate提供的内置标识符生成器
- Hibernate内置的持久化标识符生成器
- Hibernate提供的几种内置标识符生成器
- 【Hibernate学习笔记】内置标识符生成器的用法
- Hibernate内置标识符生成器
- Hibernate内置标识符生成器
- Hibernate标识符生成器
- Hibernate内置标识符生成器
- hibernate之标识符生成器用法
- hibernate id生成器
- hibernate id 生成器
- hibernate annotaion id生成器
- RAID是什么
- 我市筹建嵌入式系统公共开发平台
- Spring如何管理Session
- 厂商求援 电信C网招标价格战惊动工信部
- jstl的c:forEach标签
- Hibernate的ID的标识符生成器
- 使用spotligh+sqltuning+loadrunner对数据库性能问题进行定位和分析
- 联想移动高管蓝烨空降方正科技出任总裁一职
- 无线视频监控技术持续进步
- WinCE系统的编译过程
- DATASET 导入 EXCEL
- 一则软件需求有关的漫画
- 英特尔更新价格表 四核芯片最低224美元
- 最新研究成果-栽植网易 很雷人的广告