如何在spring boot使用Hibernate生成自动UUID?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1086)

我试图实现的是生成一个UUID,它在DB插入期间自动分配。类似于名为“id”的主键列,生成id值。

模型值如下所示:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable = false)
private Long id;


@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "uuid", columnDefinition = "BINARY(16)")
private UUID uuid;

但是当完成DB插入时,“UUID”是空的。

提问于
用户回答回答于

可以使用@PrePersio之类的事件来填充UUID字段。https://docs.jboss.org/hibernate/orm/4.0/hem/en-US/html/listeners.html

为什么在创建对象时不分配为uuid = UUID.randomUUID()?

用户回答回答于

试试:

    @Id
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
    @Column(name = "id", columnDefinition = "VARCHAR(255)")
    private UUID id;

所属标签

可能回答问题的人

  • 腾讯云数据库 TencentDB

    腾讯云 · 产品团队 (已认证)

    302 粉丝2 提问51 回答
  • EatRice

    17 粉丝0 提问183 回答
  • 华讯云

    1 粉丝0 提问156 回答
  • 成都加米谷大数据

    11 粉丝0 提问16 回答

扫码关注云+社区

领取腾讯云代金券