【问题标题】:Slick, UUID and PostgresSlick、UUID 和 Postgres
【发布时间】: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(客户端应用程序)版本。这两者可能不同。

标签: scala uuid slick


【解决方案1】:

看起来像一个错误。请举报https://github.com/slick/slick/issues/new 并参考:https://github.com/slick/slick/issues/79 或直接重新打开后者。

更新:不是错误,但您导入了错误的驱动程序。这种情况经常发生在人们身上。 Slick 应该能捕捉到这一点并提供更好的错误消息。这是票:https://github.com/slick/slick/issues/670

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-16
    • 2018-06-26
    • 2017-01-19
    • 2010-10-20
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    相关资源
    最近更新 更多