increment:hibernate中提供的自动增长机制,适用short、int、long类型的主键。注意:单线程程序中使用!
首先会发送一条语句:select max(id) from 表;然后让id+1作为下一条记录的主键。(因此多线程程序使用这个主键策略会报错)
identity:数据库底层的自动增强机制,适用short、int、long类型的主键。注意:只适用于有自动增强机制数据库(MySQL、MSSQL),Oracle是没有自动增长。
sequence:适用short、int、long类型的主键,采用的是序列的方式。注意:Oracle支持,MySQL不支持。
uuid:适用于字符串类型主键。适用hibernate中的随机方式生成字符串主键。注意:32位。
assigned:hibernate放弃外键的管理,需要通过手动编程或者用户设置。
native:本地策略,可以在identity和sequence之间自动切换。
foreign:外部的。一对一的一种关联映射的情况下适用。