Hibernate主键生成方式

一、常用方式

1.常用方式——sequence

-sequence是采用序列方式生成主键,适用于Oracle数据库。

-其配置语法为

<generator class="sequence">

       <param name="sequence">序列名</param>

</generator>

2.常用方式——identity

-identity是采用数据库自增长机制生成主键,适用于Oracle之外的其他数据库。

-其配置语法为:

<generator class="identity"></generator>

3.常用方式——native

-native是根据当前配置的数据库方言,自动选择sequence或者identity。

-其配置语法为

<generator class="native">

     <param name="sequence">序列名</param>

</generator>

二、其他方式

1.其他方式——increment

-increment不是采用数据库自身的机制来生成主键,而是Hibernate提供的一种生成主键的方式。它会获取当前表中主键的最大值,然后加1作为新的主键。

其配置语法为

<generator class="increment">

</generator>

-注意

这种方式在并必量高时存在问题,可能会生成重复的主键,因此不推荐使用。

2.其他方式——assigned

-assigned是Hibernate不负责生成主键,需要程序员自己处理主键的生成。

-其配置语法为

<generator class="assigned"></generator>

3.其他方式——uuid/hilo

-uuid/hilo是采用uuid或hilo算法生成一个主键值,这个主键值是一个不规则的长数字。

-其配置语法为

<generator class="uuid"></generator>

注意

这种方式生成的主键可以保证不重复,但是没有规律,因此不能按主键排序。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容