Slick 3.1.x方法返回空列表

时间:2016-11-24 19:34:20

标签: scala slick slick-3.0

此方法使用Slick 3.1.x并正确返回类型为Future[List[Analysis]]的对象,但列表始终为空。为什么这样以及如何解决这个问题?

  def readMany = {
    val db = Database.forConfig("db1")
    var list = new ListBuffer[Analysis]()
    try {
        val query = TableQuery[AnalysisDB]
        val action = query.sortBy(_.name).result
        val future = db.run(action).map(_.foreach {
          case (analysis) => list += Analysis ( analysis.sk, analysis.name )
        })
        Future { list.toList }
    } finally db.close
  }

1 个答案:

答案 0 :(得分:1)

列表在填充之前返回。您的app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT; // your code here // // at the end of your script reset it to the default app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL; (数据库调用)被忽略/丢弃,并返回val future(仍为空)。试试这个;

Future(list)

这也避免了臭臭的可变ListBuffer。