Hibernate主键生成策略

Hibernate主键生成策略

ID:40554924

大小:27.00 KB

页数:4页

时间:2019-08-04

Hibernate主键生成策略_第1页
Hibernate主键生成策略_第2页
Hibernate主键生成策略_第3页
Hibernate主键生成策略_第4页
资源描述:

《Hibernate主键生成策略》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate主键生成策略1、自动增长identity适用于MySQL、DB2、MSSQLServer,采用数据库生成的主键,用于为long、short、int类型生成唯一标识使用SQLServer和MySQL的自增字段,这个方法不能放到Oracle中,Oracle不支持自增字段,要设定sequence(MySQL和SQLServer中很常用)数据库中的语法如下:MySQL:createtablet_user(idintauto_incrementprimarykey,namevarchar(20));SQLServer:createtablet_user(i

2、dintidentity(1,1)primarykey,namevarchar(20));    2、sequenceDB2、Oracle均支持的序列,用于为long、short或int生成唯一标识数据库中的语法如下:Oracle:createsequenceseq_nameincrementby1startwith1;需要主键值时可以调用seq_name.nextval或者seq_name.curval得到,数据库会帮助我们维护

3、这个sequence序列,保证每次取到的值唯一,如:insertintotbl_name(id,name)values(seq_name.nextval,‘Jimliu’);         seq_name   如果我们没有指定sequence参数,则Hibernate会访问一个默认的sequence,是hibernate_sequence,我们也

4、需要在数据库中建立这个sequence此外,sequence还可以有另外一个参数是paramters,可以查看Hibernate的API了解它的用法,见org.hibernate.id.SequenceGenerator调用数据库的sequence来生成主键,要设定序列名,不然hibernate无法找到:NAME_SEQ(Oracle中很常用)3、hilo使用一个高/低位算法生成的long、short或int类型的标识符,给定一个表和字段作为高位值的来源,默认的表是hibernate_unique_key

5、,默认的字段是next_hi。它将id的产生源分成两部分,DB+内存,然后按照算法结合在一起产生id值,可以在很少的连接次数内产生多条记录,提高效率MySQL:createtablehi_value(next_hiintegernotnull);insertintohi_value(next_hi)values(1);         hi_value      next_hi<

6、/param>      100   在hibernate持久化的时候,由hibernate负责生成低位值。hilo标识符生成器在生成标识符时需要从hi_value表中取出next_hi的当前值,然后修改该值,这个操作是在单独的事务中完成的。最大的低值在属性max_lo中配置,但在Hibernate内存中生成的低位值超过此值时,就有需要到数据库的hi_value表中再次读取高位值了使用hilo生成策略,要在数据库中建立一张额外的表,默认表名为hibernate_unique_

7、key,默认字段为integer类型,名称是next_hi(比较少用)我们也可以自己设置自定义的表名和字段名                4、native会根据底层数据库的能力,从identity、sequence、hilo中选择一个,灵活性更强,但此时,如果选择sequence或者hilo,

8、则所有的表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。