1

我正在使用 Scala 2.10.0、Play Framework 2.1.0、TypeSafe Slick 1.0.1 和 play-slick 0.3.2。

我创建了一组按预期工作的 Slick 实体。我想在 Global.scala 中添加一些逻辑,通过覆盖 onStart 在启动时创建一组基本的数据库记录。

我正在使用我在网上找到的示例,其中包含如下语句:

def forInsert = name ~ description ~ viewDesc ~ skinDesc <>({ t => PackageDescription(None, t._1, t._2, t._3, t._4)}, { (pd: PackageDescription) => Some((pd.name, pd.description, pd.viewDesc , pd.skinDesc ))})

在 Global.scala 中,我这样调用它:

override def onStart(app: Application) {
    DB.withSession {
      implicit session => {
        val packageDescId = PackageDescriptions.forInsert returning PackageDescription.id insert PackageDescription(None, "foo", "bar", "baz", "quux")
    }
}

当我在 Global.scala 中执行此操作时,“返回”和“插入”不会被解析为符号。这在其他地方工作得很好。我已经验证我在两个位置都有相同的导入。

我假设在应用程序的这一点上没有初始化某些东西,或者这个假设是错误的?如果为真,是否有初始化我需要的东西?否则,有没有办法做我想做的事?

我只是从 Scala 和 Play 开始,所以我可能缺乏一些基本的理解。

4

0 回答 0