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>