Hibernate 框架总结(三):主键的生成策略

Hibernate 框架总结(一):简单开发

Hibernate 框架总结(二):session的获取方式及hibernate对象的生命周期

Hibernate 框架总结(四):多张表的关联映射

Hibernate 框架总结(五):查询

Hibernate 框架总结(六):缓存机制

JPA的主键生成策略:

共有四个生成策略,四种策略Id的类型是int型

1.@GeneratedValue(strategy=GenerationType.IDENTITY)

生成的主键相当于在mysql表中的主键选择了自动增长。从1开始,每次增长的幅度是1,如果用的oracle则不正确

2.@GeneratedValue(strategy=GenerationType.SEQUENCE)

为oracle数据库服务,会在数据库中新建一个序列, 从1开始,每次增长的幅度是1,多张表会共用这一个序列,序列的名字是

hibernate_sequence

3.@GeneratedValue(strategy=GenerationType.AUTO)

相当于前两种的结合体,会根据数据库选择哪一种生成厕所,一般都用这种

4.@TableGenerator(name="ID_GENERATOR",  //生成器名称

            table="ID_GENERATOR", //生成器使用的表

            pkColumnName="PK_NAME", //表对应的字段名

            pkColumnValue="tb_user", //当前实体类对应表在pk_name这个列中的值,这句可以省略

            valueColumnName="PK_VALUE", //

            //根据上述三个属性,就可以定位到表中的PK_VALUE的值,如:110100

            allocationSize=10)//表示主键一次增加10

@GeneratedValue(strategy=GenerationType.TABLE, generator="ID_GENERATOR")

这种方式会在数据库中生成一张表,用来管理表的主键

Hibernate的主键生成策略:

注意给Id打注解的时候导包要是hibernate的,Id要是String类型

@GenericGenerator(name = "system-uuid", strategy = "uuid") 

@GeneratedValue(generator = "system-uuid") 

首先声明一个策略通用生成器,name"system-uuid",策略strategy"uuid"generator属性指定要使用的策略生成器

会随机生成一个不同的32位的字符串


你可能感兴趣的:(Hibernate框架)