Hibernate主键增长策略

1、assigned 主键由自己维护,在session.save()之前必须给定一个id值 hibernate不负责维护主键生成

<id name =“id”column =“id”>

< generator  class =“assigned”/>

</ ID>

2、increment (由hibernate提供的增长机制,先去数据库查询最大id,再给你自增)用于long、int、short类型生成唯一标识,在单线程的程序中使用(分布式误用)

<id name =“id”column =“id”>

< generator  class =“increment”/>

</ ID>

3、identity (由数据库底层提供,不支持Oracle)对DB2、mysql、SQL Server和Sybase等数据库提供支持。(long、short、int)

<id name =“id”column =“id”>

< generator  class =“identity ”/>

</ ID>

4、sqquence (short、int、long)对DB2、Oracle、postgraSql等支持(Mysql不支持序列)

<id name =“id”column =“id”>

< generator  class =“sqquence ”/>

</ ID>

5、uuid 使用于字符串类型的主键。使用hibernate中随机生成的字符串(类似java中的uuid)

<id name =“id”column =“id”>

< generator  class =“uuid ”/>

</ ID>

6、native 本地策略,可以在 identity 和 sequence 之间自动切换(比如你选择了mysql 自动选择identity。你选择了Oracle 则自动帮你选择 sqquence)

<id name =“id”column =“id”>

< generator  class =“native”/>

</ ID>

猜你喜欢

转载自blog.csdn.net/qq_40209921/article/details/85227028
今日推荐