博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate主键生成策略及选择
阅读量:6276 次
发布时间:2019-06-22

本文共 609 字,大约阅读时间需要 2 分钟。

1 .increment:适用于short,int,long作为主键,不是使用数据库自动增长机制

这是hibernate中提供的一种增长机制

           在程序运行时,先进行查询:select max(id) from user;

                                       再进行插入:或得最大值+1作为新的记录的主键

问题:不能在集群环境下或者有并发访问的情况下使用

2 .identity 适用于short,int,long作为主键,但是这个必须使用在有自动增长机制的数据库中,采用的是数据库底层的自动增长机制

底沉使用的是数据库的自动增长(auto_increment),像oracle数据库没有自动增长

3.sequence 适用于short,int,long作为主键,底层使用的是序列的增长方式

  • oracle 数据库底层没有自动增长,想自动增长需要使用序列

4.native本地策略,根据底层数据库不同,自动选择适用于该数据库的生成策略(short int long)

如果底层使用的是mysql没数据库相当于 identity

如果使用的oracle数据库,相当于sequence

5.uuid,适用于char,varchar类型作为主键.

使用随机的字符串作为主键

6.assigned 主键自己维护,不使用hibernate维护

总结:使用时,如果主键是short,int long类型,采用native主键生成策略,如果是字符串,使用uuid主键生成策略

 

转载地址:http://dxfva.baihongyu.com/

你可能感兴趣的文章
手把手教你写专利申请书/怎样申请专利
查看>>
MVC - 12.HtmlHelper
查看>>
反调试技术揭秘
查看>>
Cache的使用
查看>>
Ubuntu14.04搭建LAMP环境
查看>>
angular学习笔记(三十)-指令(2)-restrice,replace,template
查看>>
Wordpress 音频播放器 Wordpress audio player with jQuery audioplayer.swf
查看>>
NLog类库使用探索——详解配置
查看>>
MyEclipse7.0破解下载
查看>>
c++单例
查看>>
UnitOfWork 更新实体出错解决办法
查看>>
自定义Image HtmlHelper
查看>>
mysql学习笔记 第八天
查看>>
Arduino 数码管LED驱动 数组法
查看>>
css表格单元格中的长文本的显示问题
查看>>
LeetCode: Linked List Cycle [141]
查看>>
移动开发框架剖析(一) Hammer专业的手势控制
查看>>
“权限”用英语该用哪个?
查看>>
Android 中字体的处理
查看>>
VS2010 lib和dll导出路径设置
查看>>