java面试题网

普通会员

257

帖子

9

回复

131

积分

楼主
发表于 2018-03-22 16:14:55 | 查看: 320| 回复: 0

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

* Hibernate中提供的一种增长机制;

* 先进行查询:select max(id) from user;

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

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

②identity:适用于short,int,long作为主键。必须使用底层带有自动增长机制的数据库。

* 底层使用的是数据库的自动增长(auto_increment).像Oracle数据库没有自动增长;

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

* Oracle数据库底层没有自动增长,想自动增长需要使用序列;

④uuid:适用于char,varchar类型的作为主键.

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

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

* 如果底层使用的MySQL数据库:相当于identity;

* 如果底层使用Oracle数据库:相当于sequence;

⑥assigned:主键的生成不用Hibernate管理了.必须手动设置主键。



您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018