我使用Spring Boot 1.4.1,它包含Hibernate 5和Postgres 9.6,我試圖用UUID ID創建一個實體,但是使用Postgres的UUID而不是Hibernate。許多類似的問題都表示將列類型設置爲pg-uuid
。這似乎和非數據庫生成的ID列工作,但是當我嘗試使用它的ID列,我得到有沒有辦法將Postgres的UUID生成與Hibernate的IDENTITY 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;
而表類似於如下設置(uuid-ossp
安裝)
create table example (
id UUID NOT NULL DEFAULT uuid_generate_v1mc(),
...
);
我寧願有數據庫生成UUID並且不想使用Hibernate的生成策略。有沒有辦法讓這個工作?