【发布时间】:2014-05-13 18:58:30
【问题描述】:
我正在尝试将 java.util.UUID 映射到 Slick 列,这应该是可能的:https://github.com/slick/slick/issues/79
我将列定义如下:
def id = column[UUID]("id", O.PrimaryKey, O.DBType("UUID"))
根据上面链接的 Github 问题,手动 DBType 覆盖应该没有必要,但没有它我就无法工作。
我尝试在 Postgres 中插入一行时遇到的错误是:
org.postgresql.util.PSQLException:
ERROR: column "id" is of type uuid but expression is of type bytea
似乎从 java.util.UUID 到 Postgres uuid 类型的映射似乎不起作用。
我正在使用以下工件版本:
"com.typesafe.slick" %% "slick" % "2.0.1",
"org.slf4j" % "slf4j-nop" % "1.6.4",
"org.postgresql" % "postgresql" % "9.3-1101-jdbc41"
我的 postgres 版本是 $ psql --版本 psql (PostgreSQL) 9.3.3
我做错了什么?
【问题讨论】:
-
你试过
def id = column[UUID]("id", O.PrimaryKey)吗? -
是的,我做到了。如果我这样做,Slick 会尝试将 Postgres 类型(在 DDL 生成期间)设置为
OTHER。 -
请注意,当您检查 PostgreSQL 服务器版本时,您应该使用
SELECT version();查询您的数据库。$ psql --version返回 psql(客户端应用程序)版本。这两者可能不同。