Hibernate关系关系映射文件中,我们通常都需要配置一个主键,Hibernate提供了多种主键的生成方式,具体有哪些以下做简单介绍。
工具/原料
1
jdk1.8
2
IntelliJ IDEA
方法/步骤
1
采用数据库序列生成方式sequence,即数据库中已经设定了主键的生成方式为序列,Hibernate直接采用数据库的主键生成方式,适用于Oracle数据库。
2
采用数据库自增长生成方式identity,即数据库中已经配置以自增长方式生成主键,适用Oracle之外的数据库。
3
以上两种都需要事先知道数据库中主键的配置,而如果采用native则会自动去适配数据库的主键生成方式,自动选择sequence或者identity。
4
除了适配数据库的主键配置,hibernate还提供了increment自增配置,该配置是由hibernate提供的主键生成方式,其会获取表中最大的主键值,然后在其上加1.
5
assigned生成方式,该方式需要程序员编程时自己决定主键生成方式,然后传入值。
6
利用uuid/hilo算法生成主键值,该方式生成不规则的长数字,可以保证不重复,但是无序。
注意事项
1
increment方式在并发量高时容易造成主键重复,不建议使用
2
一般使用native方式进行主键配置