【发布时间】:2016-12-12 20:41:17
【问题描述】:
如何使用 Hibernate 5.0 在 Postgres 中将 java UUID 存储为字节数组?
模型:
@Entity
@Table(name = "childs")
public class Child {
...
@Type(type = "pg-uuid")
private UUID parentId;
...
}
表:
CREATE TABLE childs (
...
parent_id BYTEA,
...
);
过去在 Hibernate 4.3 中一切正常。升级到 Hibernate 5.0 后出现以下错误:
PSQLException: ERROR: column "parent_id" is of type bytea but expression is of type uuid
查了PostgresUUIDType的源码,发现在新版本的Hibernate中增加了以下内容:
@Override
protected boolean registerUnderJavaType() {
// register this type under UUID when it is added to the basic type registry
return true;
}
我尝试将模型中的字段类型更改为@Type(type = "uuid-binary"),但仍然出现相同的错误。 (将列类型更改为 UUID 不是一种选择。)
任何帮助,将不胜感激。谢谢。
【问题讨论】:
标签: java postgresql hibernate