Hibernate主键生成方式

2018-07-02  本文已影响0人  谁踩过枯枝轻响

一、常用方式

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>

注意

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

上一篇下一篇

猜你喜欢

热点阅读