3

有没有人成功使用 Slick(我目前使用的是 3.0.0-RC3,最新的可用版本)来生成包含特定于 DB 的函数的表定义?如果是这样,如何实现?

示例:我在 Postgres 中有一个具有以下定义的列:

"request_date" timestamp default now(),

我尝试(未成功)在 Slick DDL 中描述。

第一次尝试:

def requestDate = column[Option[DateTime]]("request_date", O Default "now()")

当然,这被拒绝了:

[error] <path-to-file>: type mismatch;
[error]  found   : String("now()")
[error]  required: Option[org.joda.time.DateTime]
[error]     def requestDate = column[Option[DateTime]]("request_date", O Default "now()")

好的,我尝试定义一个 SimpleFunction(我已经有 DateTime 转换器):

val dbNow = SimpleFunction.nullary[DateTime]("now")
def requestDate = column[Option[DateTime]]("request_date", O Default dbNow)

这产生了另一个错误:

[error] <path-to-file>: type mismatch;
[error]  found   : slick.lifted.Rep[org.joda.time.DateTime]
[error]  required: Option[org.joda.time.DateTime]
[error]     def requestDate = column[Option[DateTime]]("request_date", O Default dbNow)

我也试过SimpleLiteral[DateTime]("now()"),导致类似的错误。(删除选项也没有帮助)。

任何想法,将不胜感激。有点郁闷,这么简单的东西好像不太容易买到……

4

1 回答 1

0

目前不支持:https ://github.com/slick/slick/issues/214 。您需要使用普通 SQL 相应地更改您的表

于 2015-04-15T21:04:55.477 回答