主键生成策略
主键不应该由用户自己输入,而是由程序生成。
(1)increment:自动增长,使用的是Hibernate中提供的自动增长机制,适应于short,int,Long。Hibernate底层使用查询一下表中主键的最大值。select max(cust id ) from customer,然后将id+1作为当前的主键。
问题:在集群中不要使用
(2)identity:自动增长。使用的是数据库的自动增长机制。使用于有自动增长机制的机器。Oracle没有自动这增长功能。
(3)sequence:序列,使用的是序列的方式完成数据库的主键的生成)(Oracle和DB2可以使用)
(4)native:本地策略,根据数据库不同自动选择identity和sequence。
(5)uuid:适用于字符串类型的主键,产生一个随机的字符串。
(6)assigned:Hibernate不管理主键,用户手动设置主键的值