Hibernate 生成一个 Long id 值而不是 UUID

1 postgresql uuid hibernate quarkus

我正在使用夸克(0.17)。我做了一个华丽的实体来连接 posgresql。我的表有一个 uuid 键并定义为:

 CREATE TABLE public.instruments
(
    id uuid,
    name character varying(50)
)
Run Code Online (Sandbox Code Playgroud)

我在 application.properties 中设置了休眠方言,因为它:

quarkus.hibernate-orm.dialect =  org.hibernate.dialect.PostgreSQL95Dialect
Run Code Online (Sandbox Code Playgroud)

我的实体被定义为:

quarkus.hibernate-orm.dialect =  org.hibernate.dialect.PostgreSQL95Dialect
Run Code Online (Sandbox Code Playgroud)

在运行时,当我尝试持久化我的实体时,我有一个java.lang.IllegalArgumentException: Can not set java.util.UUID field xxxx.entity.Instrument.id to java.lang.Long.

Gui*_*met 5

PanacheEntity 添加自己的id:

    @Id
    @GeneratedValue
    public Long id;
Run Code Online (Sandbox Code Playgroud)

所以你需要的是扩展PanacheEntityBase一个更低的级别并且不带有id。