【发布时间】:2017-04-03 02:49:39
【问题描述】:
我正在使用 Hibernate 5.0 + Postgres 9.4
我的实体使用UUIDs 作为标识符。
该项目还使用hibernate-spatial。
id 属性被简单注释为
@Id
@GeneratedValue
private UUID id;
在持久化任何实体(不仅是具有几何数据的实体)后,我收到以下错误:
column "id" is of type geometry but expression is of type uuid
看起来我的类型映射存在一些冲突;虽然我不是 Hibernate 类型映射方面的专家。
有没有人可以帮我解决这个问题?
【问题讨论】:
-
数据库中
ID的列是什么类型? -
@SubOptimal 创建为
geometry,因为UUID和Geometry都映射到java.sql.Types.OTHER -
你的意思是你有
CREATE TABLE some_table (id geometry, ...),现在想将UUID映射到它? -
@SubOptimal 不。 Schema(在开发模式下)由 Hibernate 创建。只要我没有添加空间集成 (hibernate-spatial:5.0.7),UUID 字段就会正确创建为
pg-uuid。添加空间内容后,由于java.util.UUID和com.vividsolutions.Geometry都映射到java.sql.Types.OTHER,映射发生了变化。现在,问题是如何解决这个映射冲突。 -
也许这可能是解决方案stackoverflow.com/questions/4495233/…。
标签: java postgresql hibernate hibernate-spatial