Scala TypeSafe Slick 1.0.1-AutoInc和返回插入的id

Scala TypeSafe Slick 1.0.1-AutoInc和返回插入的id,scala,playframework,slick,Scala,Playframework,Slick,我使用的是Scala 2.10.0、Play Framework 2.1.0、TypeSafe Slick 1.0.1和Play Slick 0.3.2 我已经创建了一组光滑的实体,它们按照预期工作。我想在Global.scala中添加一些逻辑,通过覆盖onStart在启动时创建一组基本的数据库记录 我正在使用我在网上找到的示例,其中有这样一句话: def forInsert = name ~ description ~ viewDesc ~ skinDesc <>({ t =>

我使用的是Scala 2.10.0、Play Framework 2.1.0、TypeSafe Slick 1.0.1和Play Slick 0.3.2

我已经创建了一组光滑的实体,它们按照预期工作。我想在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 ))})
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中执行此操作时,“returning”和“insert”不会解析为符号。这在其他地方效果很好。我已经验证了我在这两个地方都有相同的进口

我假设应用程序中的某个地方没有初始化,或者这个假设是错误的?如果为true,是否仍需要初始化我所需的内容?否则,有没有办法做到我想要的


我刚刚开始学习Scala和Play,因此我可能缺乏一些基本的理解。

如果有人能详细解释一下,如果不可能像上面所说的那样完成我想要的任务,为什么这项功能不能按预期工作,我也将不胜感激。我通过在onStart方法中添加范围内的导入,设法解决了这个问题。我不明白这里发生了什么。这些导入在文件范围内。谁能给我点化一下吗?或者直接指向解释这一点的文档。您是否可以更新原始帖子,以显示您为解决此问题所做的更改以及在文件顶部声明的导入?