gpt4 book ai didi

java - 有没有办法将 Postgres 的 UUID 生成与 Hibernate 的 IDENTITY ID 生成策略结合使用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:41 26 4
gpt4 key购买 nike

我正在使用 Spring Boot 1.4.1,其中包括 Hibernate 5 和 Postgres 9.6,我正在尝试创建一个具有 UUID ID 的实体,但使用的是 Postgres 的 UUID 生成而不是 Hibernate 的。很多类似的问题都说要设置column type为pg-uuid。这似乎适用于非数据库生成的 ID 列,但是当我尝试将它用于 ID 列时,我得到了

org.hibernate.id.IdentifierGenerationException:无法识别的 ID 类型:pg-uuid -> java.util.UUID

所以看起来 Hibernate 正确地应用了类型,但没有转换它。

以下是我的实体的 ID 列的设置方式:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@org.hibernate.annotations.Type(type="pg-uuid")
private UUID id;

并且表的设置类似于如下(安装了uuid-ossp)

create table example (
id UUID NOT NULL DEFAULT uuid_generate_v1mc(),
...
);

我宁愿让数据库生成 UUID 而不想使用 Hibernate 的生成策略。有没有办法让它发挥作用?

最佳答案

你可以使用策略:AUTO

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID id;

这里是 a working example

关于java - 有没有办法将 Postgres 的 UUID 生成与 Hibernate 的 IDENTITY ID 生成策略结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40851445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com