springdatajpa中实体类的定义

发布时间 2023-08-30 14:44:10作者: 小张的开发笔记

@Id
@GeneratedValue(generator = "gen")
@GenericGenerator(
name = "gen",
strategy = "uuid",
parameters={
@Parameter(name="separator",value="_")

    `    }`

)
private String id;
Java中使用Hibernate框架进行数据库操作时,为实体类的主键字段添加 @Id@GeneratedValue 注解,并使用 @GenericGenerator 注解生成一个唯一的ID值,用于标识数据库中的记录。

解释一下注解的作用和使用方式:

  • @Id 注解表示该字段是实体类的主键字段。
  • @GeneratedValue 注解指定了主键字段的生成策略。在这个例子中,使用了Hibernate的 @GenericGenerator 注解来自定义生成器。我们可以看到 @GenericGenerator 注解中的参数:
    • name:定义生成器的名称,这里为 "gen"。
    • strategy:指定生成策略,这里使用的是 UUID 生成策略,即通过 UUID 生成全局唯一标识符作为主键。
    • parameters:指定生成策略所需的参数。在这个例子中,使用了一个名为 "separator" 的参数,设置其值为 "_",表示生成的ID中使用下划线作为分隔符。

最后,在实体类的 id 字段上应用这些注解,表示该字段是主键字段,并使用自定义的生成器生成唯一的ID值。

这样配置后,每次创建实体对象时,Hibernate会自动生成一个唯一的ID值,并将其作为主键值插入到数据库中。生成的ID值是基于UUID的,带有下划线作为分隔符。