主键生成策略有:
UUID,increment、Hilo、assigned:对数据库无依赖
identity:依赖Mysql或sql server,主键值不由hibernate维护
sequence:适合于oracle等支持序列的dbms,主键值不由hibernate维护,由序列产生。
native:根据底层数据库的具体特性自动选择适合的主键生成策略,如果是mysql或sqlserver,选择identity,如果是oracle,选择sequence。
assigned 是在save 之前手动设置主键值,不建议使用。
increment 由hibernate 维护,但是不适合于2个或以上hibernate进程。(同一个项目部署在两个服务器上)
一般来说推荐UUID,因为生成主键唯一,且对数据库无依赖,可移植性强。