首先我们说一下主键类型:
(1)自然主键
(2)代理主键
自然主键一般很少使用,应为满足主键的要求的列太少了,我们一般使用代理主键。下面我们来看一下hibernate的主键生成策略。
主键生成策略generater :就是每条记录在录入时,主键的生成规则。
主键的生成策略有7种,分别一一介绍:
(1)indentity:主键自增,由数据库来维护,录入时不需要指定主键。
(2)increment:主键自增,由hibernate来维护,每次插入前查询数据库中的值后+1,有线程问题,且执行效率低。
(3)sequence:oracle中的主键生成策略。
(4)hilo:高低位算法,由Hibernate维护。
(5)native:hilo,sequence,identity自动三选一,一般我们使用它。
(6)uuid:产生随机字符串作为主键,无需指定主键,但id类型必须为String型。
(7)assigned:自然主键生成策略,由我们自己输入。