Noc*_*ebo 5 scala playframework slick slick-3.0
我正在尝试在 Play 框架中使用 Scala/Slick 保存数据。我正在通过 json 发送请求,并尝试通过将其与如下模型匹配来验证所述请求:
request.body.asJson.map(_.validate[Foo] match {...}
Run Code Online (Sandbox Code Playgroud)
问题是:如何设置默认列值(为 false)?
这是我的进化文件:
CREATE TABLE Foo(
...
deleted BOOLEAN NOT NULL DEFAULT FALSE,
...
)
Run Code Online (Sandbox Code Playgroud)
这是我的模型(.scala):
case class Foo(
...
deleted: Boolean,
...)
Run Code Online (Sandbox Code Playgroud)
这是我的 dao (.scala):
class Foo(tag: Tag) extends TableFoo(tag, "Foo"){
...
def deleted = column[Boolean]("deleted", O.Default(false))
...
def * = (..., deleted, ...) <> ((Foo.apply _).tupled, Foo.unapply)
}
Run Code Online (Sandbox Code Playgroud)
验证模型请求时出现问题。定义deleted为时Option[Boolean],它None/Null为列写入deleted。将其定义为 时Boolean,验证失败。大概是因为请求缺少 属性deleted。
Option[Boolean]当验证失败或者只是写入的情况下,为什么要定义默认值None/Null?有没有一种简单的方法可以在 Scala/Slick 或 Evolutions 中设置可靠的默认值?
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |