quarkus (0.17) を使用しています。posgresql で接続するために panache でエンティティを作成します。私のテーブルには uuid キーがあり、次のように定義されています。
CREATE TABLE public.instruments
(
id uuid,
name character varying(50)
)
application.properties に hibernate 方言を次のように設定しました。
quarkus.hibernate-orm.dialect = org.hibernate.dialect.PostgreSQL95Dialect
私のエンティティは次のように定義されています:
@Entity
@Table(name="instruments")
public class Instrument extends PanacheEntity{
@Id
@GeneratedValue( generator = "UUID" )
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator",
parameters = {
@Parameter(
name = "uuid_gen_strategy_class",
value = "org.hibernate.id.uuid.CustomVersionOneStrategy"
)
}
)
@Type(type="pg-uuid")
public UUID id;
public String name;
}
実行時にエンティティを永続化しようとすると、java.lang.IllegalArgumentException: Can not set java.util.UUID field xxxx.entity.Instrument.id to java.lang.Long
.