开发指南130-实体类的主键生成策略
平台实体类是依据JPA规范的,首先需要使用@Id注解。@Id 用于指定一个实体类的属性作为该实体的唯一标识符(即主键)。在 JPA 中,每个实体都必须有一个唯一标识符,以便在数据库中唯一标识该实体的实例。
平台统一规定使用字符串类型做完主键。
@Id
注解本身不指定主键的生成策略,还需要@GeneratedValue注解来实现。
@GeneratedValue规定的生成策略包括
1. 使用数据库自增策略(IDENTITY)
2. 使用序列(SEQUENCE)
3. 使用表(TABLE)
4. 自动策略(AUTO)
以上方法都和数据库相关,本平台不采用。平台采用如下自定义方式:
@GeneratedValue(generator="system-uuid") @GenericGenerator(name="system-uuid", strategy = "****")
其中strategy可以有如下取值(只介绍平台使用的俩个取值):
uuid.hex
生成 UUID 字符串作为主键,长度为 32 位,格式如a1b2c3d4-e5f6-7890-abcd-1234567890ab
。assigned主键由用户手动分配,而非由框架自动生成,需要在保存实体前手动设置主键值。
总之,平台使用uuid格式的字符串作为关键字