hibernate的主键生成策略

1. increment标识符生成器
<id name=”id” column=”id” type=”integer”>
    <generator class=”increment”/>

</id>

由hibernate管理主键,自动以递增的方式生成标识符

hibernate会先读取表中的主键最大值,然后向表中插入记录,在max(id)的基础上递增,增量为1 (带走加1)

存在并发问题,所以开发中不用,

2. identity标识符生成器
<id name=”id” column=”id” type=”integer”>
        <generator class=”identity”/>

</id>

由底层数据库负责生成标识符,它要求底层数据库把主键定义为自动增长类型 (加1带走)

支持的数据库 db2 sybase mysql 

不存在并发问题

3. sequence标识符生成器

Oracle数据库中序列的名称

<id name=”id”>
        <generator class=”sequence”>
                <param name=”sequence”>news-seq</param>
        </generator>
</id>

4. native标识符生成器

万能的,一级底层数据库对自动生成标识符的支持能力,来选择使用identity,sequence或hilo标识符生成器

适合跨数据库平台开发

<id name=”id” column=”id” type=”integer”>
        <generator class=”native”/>
</id>

你可能感兴趣的:(hibernate的主键生成策略)