(1)increment
该策略是hibernate自主维护数据表主键值。使用该策略数据库主键可以不设置自增,使用hibernate进行插入操作的时候首先查询数据库主键的最大值,然后自增,再向数据库插入数据。
(2)identity
该策略使用数据库自身自增长来维护主键。数据库主键需要设置自增长,插入数据操作中不包含自增主键的数据添加。
(3) sequence
一般情况下mysql不使用序列,使用序列的时候hibernate会在数据库中建hibernate_sequence表,next_val 列(初始值需要自己设置)中记录下下一条插入数据主键应该是的值。每次插入操作执行会更新序列表中的值,以备下次使用。
(4)native
数据库自动从identity,sequence中自动选择一个使用。
(5)assigned
有程序员自己设置,通过setid()设置,一般为整形,也可以是String,该策略应用主键类型多为String,比如:身份证号码,学号等。
(6)uuid
通用唯一标识,全球唯一。主键类型为String