平台实体类是依据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可以有如下取值(只介绍平台使用的俩个取值):

  1. uuid.hex
    生成 UUID 字符串作为主键,长度为 32 位,格式如 a1b2c3d4-e5f6-7890-abcd-1234567890ab
  2. assigned主键由用户手动分配,而非由框架自动生成,需要在保存实体前手动设置主键值。

     总之,平台使用uuid格式的字符串作为关键字