小编Str*_*ess的帖子

有没有办法使用Postgres的UUID生成与Hibernate的IDENTITY ID生成策略?

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

org.hibernate.id.IdentifierGenerationException: unrecognized id type : pg-uuid -> java.util.UUID

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

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

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

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

create table example (
    id UUID NOT NULL DEFAULT uuid_generate_v1mc(),
    ...
);
Run Code Online (Sandbox Code Playgroud)

我宁愿让数据库生成UUID,也不想使用Hibernate的生成策略.有没有办法让这个工作?

java postgresql hibernate jpa spring-boot

7
推荐指数
2
解决办法
2707
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1

postgresql ×1

spring-boot ×1