当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

Hibernate主键生成办法 Key Generator[Java编程]

赞助商链接



  本文“Hibernate主键生成办法 Key Generator[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Hibernate主键生成方法 Key Generator

主键产生器

可选项阐明:

1) assigned

主键由外部程序负责生成,无需Hibernate参与.

2) hilo

通过hi/lo 算法实现的主键生成机制,需求额外的数据库表保存主键生成历史状况.

3) seqhilo

与hilo 近似,通过hi/lo 算法实现的主键生成机制,只是主键历史状况保存在Sequence中,实用于支持Sequence的数据库,如Oracle.

4) increment

主键按数值次序递增.此方法的实现机制为在当前利用实例中保持一个变量,以保存着当前的最大值,之后每次需求生成主键的时刻

将此值加1作为主键.

这种方法大概产生的问题是:假如当前有多个实例拜候同一个数据库,那么由于各个实例各自保护主键状况,差别实例大概生成一样的主键,从而造成主键反复非常.因此,假好像一数据库有多个实例拜候,此方法必须避免利用.

5) identity

采取数据库供应的主键生成机制.如DB2、SQL Server、MySQL中的主键生成机制.

6) sequence

采取数据库供应的sequence 机制生成主键.如Oralce 中的Sequence.

7) native

由Hibernate按照底层数据库自行判断采取identity、hilo、sequence此中一种作为主键生成方法.

8) uuid.hex

由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键.

9) uuid.string

与uuid.hex 近似,只是生成的主键未举行编码(长度16).在某些数据库中大概呈现问题(如PostgreSQL).

10) foreign

利用外部表的字段作为主键.

普通而言,操纵uuid.hex方法生成主键将供应最好的性能和数据库平台适应性.

别的由于常用的数据库,如Oracle、DB2、SQLServer、MySql 等,都供应了易用的主键生成机制(Auto-Increase 字段大概Sequence).我们可以在数据库供应的主键生成机制上,采取generator-class=native的主键生成方法.不过值得注意的是,一些数据库供应的主键生成机制在效率上未必最佳,大量并发insert数据时大概会惹起表之间的互锁.

数据库供应的主键生成机制,常常是通过在一个内部表中保存当前主键状况(如关于自增型主键而言,此内部表中就保护着当前的最大值和递增量),之后每次插入数据会读取这个最大值,然后加上递增量作为新记录的主键,之后再把这个新的最大值更新回内部表中,这样,一次Insert操作大概招致数据库内部多次表读写操作,同时伴随的还有数据的加锁解锁操作,这对性能产生了较大影响.

因此,关于并发Insert要求较高的系统,举荐采取uuid.hex 作为主键生成机制.


  以上是“Hibernate主键生成办法 Key Generator[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 在Hibernate里面动态切换SChema实现访谒差别的数据库的几种办法
  • Hibernate 3新增XML关系长期性介绍
  • Hibernate配置文件在单元测试中的操纵
  • 在Hibernate中动态切换Schema
  • hibernate annoation (八 关联映射)
  • hibernate annoation (九 cascading)
  • <b>hibernate annoation (十 映射查询)</b>
  • hibernate annoation(十一 缓存Ehcache 采纳annoation)
  • Hibernate:操作配置文件生成数据库
  • hibernate annoation (一 加载)
  • hibernate annoation (二 成立表)
  • <b>hibernate annoation (三 id生成器)</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .