database - 休眠中的 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[]
解决方案
我找到了解决方案。由于某些问题,我正在使用 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;
...
推荐阅读
- angular - 组件渲染空白 HTML
- c++ - WaitForInputIdle 替代方法
- wordpress - 不要在 Wordpress 主题中加载“edits.css”
- mysql - 配置 Apache 503 敏感度
- python - 仅在 QFileDialog 中显示某些文件
- linux - 如何使用批处理文件在腻子窗口上执行 cd 命令,该批处理文件又调用文本文件以获取命令
- c# - 如何在 C# 中打印 AsyncSearch<> 类型的变量?
- dynamics-crm - 在 MS CRM 2011 中使用 C#asp.net 创建合同
- oauth-2.0 - 带有谷歌离线刷新令牌的 Keycloak
- javascript - 如何使用 DatePipe 在 Angular 4、5、6 及更高版本中获取日期和时间