2014-04-02 121 views
4

我想要一個java.util.UUID映射到油滑列,它根據此有可能:https://github.com/slick/slick/issues/79油滑,UUID和Postgres

我定義如下的列:

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 --version PSQL(PostgreSQL的)9.3.3

我在做什麼錯?

+0

你嘗試過'def id = column [UUID](「id」,O.PrimaryKey)'? – cvogt

+0

是的,我做到了。如果我這樣做,Slick會嘗試將Postgres類型(在生成DDL期間)設置爲'OTHER'。 –

+0

請注意,當您檢查PostgreSQL服務器版本時,應該使用'SELECT version();'查詢數據庫。 '$ psql --version'返回psql(客戶端應用程序)版本。這兩個可以不同。 – falconepl

回答