主键增长策略

来源:互联网 发布:网络写作平台17k 编辑:程序博客网 时间:2024/06/05 08:34

主键增长策略:

 


assigned:
 1.表示手动指定主键值
 2.不管数据库中是否支持自动增长语句,该策略都要求程序设置主键值

 3.该策略是没有<generator> 元素时的默认策略

 4.容易出现重复的主键

identity:
 1.适用于Mysql,MS SQLServer等支持自动增长语句的数据库,不支持oracle
 2.适用数据库的自动增长语句来生成主键值,手动设置的主键值不起作用。
 3不会出现主键重复的异常  推荐

sequence:
 1.适用于Oracle数据库,默认Hibernate适用名字为hibernate_sequence的序列来维护主键。
 2.可以使用指定的序列来维护主键,指定方式如下:
 <id name="id" type="java.lang.Long">
            <column name="ID" precision="22" scale="0" />
            <generator class="sequence" >
             <param name="sequence">etoak_seq</param>
            </generator>
        </id>

native:
 1.自动选择
 2.如果底层数据库使用的是MySQL,则native自动相当于identity
   如果底层数据库使用的是Oracle,则native 自动相当于
   sequence

increment:1.先查询最大的ID,然后最大的ID+1作为新的ID添加到数据库中。
 2.并发环境不要使用。

 

0 0
原创粉丝点击