无法使用 Slick 3.1.1 解析符号 NotNull

Posted

技术标签:

【中文标题】无法使用 Slick 3.1.1 解析符号 NotNull【英文标题】:Cannot resolve symbol NotNull with Slick 3.1.1 【发布时间】:2016-10-06 08:01:50 【问题描述】:

我的架构定义如下: 封装模型

import java.sql.Timestamp

import play.api.libs.json.Format, Json
import slick.driver.PostgresDriver.api._
import slick.lifted.Tag

case class ApiKey(id: Option[Int] = None, key: String, createdAt: Timestamp)

object ApiKeys 

  implicit lazy val apiKeyFormat: Format[ApiKey] = Json.format[ApiKey]



class ApiKeys(tag: Tag) extends Table[ApiKey](tag, "api_key")
...
  def createdAt = column[Timestamp]("createdAt", O.NotNull)
...

编译器抱怨Cannot resolve symbol NotNull,即使文档声明此选项应该可用:http://slick.lightbend.com/doc/3.1.1/schemas.html

即使我查看源代码也没有这样的事情。我在文档中遗漏了什么?

【问题讨论】:

【参考方案1】:

O.NotNull 在最新版本的 slick 中被删除。默认情况下,当列声明如下column[A] 时,所有内容都是not null。要创建nullable 列,您必须将其声明为column[Option[A]]

【讨论】:

以上是关于无法使用 Slick 3.1.1 解析符号 NotNull的主要内容,如果未能解决你的问题,请参考以下文章

无法从“react-slick”解析“SimpleSlider.js”

升级 Play 到 2.4,Slick 到 3.1.1,值 withTransaction 不是 play.api.db.slick.Database 的成员

在 Slick 3.1.1 中比较日期

无法使用 play-slick 1.0.1/slick 3.0 连接到 mysql 数据库:配置错误

error LNK2019: 无法解析的外部符号

映射列类型 Slick 3.1.1