首页 > 解决方案 > 休眠中的 UUID[] 不映射

问题描述

我的问题类似于Hibernate 支持的 Postgresql UUID?但我必须使用 UUID 数组。我收到错误

Caused by: org.postgresql.util.PSQLException: ERROR: column "system_ids" is of type uuid[] but expression is of type bytea

列定义是

@Column(name = "system_ids", columnDefinition = "uuid[]")
private UUID[] system_ids;

我正在使用 Postgresql,所以我将其他 UUID pk 映射为

@Type(type = "pg-uuid")

我不知道如何映射 UUID[]

标签: databasepostgresqlhibernatejpauuid

解决方案


我找到了解决方案。由于某些问题,我正在使用 hibernate 4.3.11.Final 并且无法使用 typedef 类 UUIDArrayType.class 所以我在 pom.xml 中导入了依赖项

    <dependency>
        <groupId>com.vladmihalcea</groupId>
        <artifactId>hibernate-types-5</artifactId>
        <version>2.9.13</version>
    </dependency>

现在我的代码看起来像这样

...

@TypeDefs({
        @TypeDef(name = "uuid-array", typeClass = UUIDArrayType.class) })
...

    @Type(type = "uuid-array")
    @Column(name = "system_ids", columnDefinition = "uuid[]")
    private UUID[] system_ids;

...

推荐阅读