将序列插入数据库,Slick 3

时间:2016-01-24 17:24:51

标签: scala playframework slick

我想在我的DAO中添加一个方法,允许我为单个元素插入一个元素列表而不是单个元素:

def add(userGroup: UserGroup): Future[Int] = {
  dbConfig.db.run(userGroups += userGroup)
}

文档似乎暗示我应该能够使用++ = like so

def add(userGroups: Seq[UserGroup]): Future[Int] = {
  dbConfig.db.run(userGroups ++= userGroups)
}

http://slick.typesafe.com/doc/3.0.0/queries.html#inserting

但是这不起作用,++ =显然不是它所期望的那样?

1 个答案:

答案 0 :(得分:3)

++=TableQuery添加了一个序列。在您的第二个代码段中,您似乎只是将userGroups: Seq[UserGroup]添加到自身而不是TableQuery实例。

如果您的第一个代码段有效,则将userGroups: Seq[UserGroup]添加到this.userGroups可能有效。

def add(userGroups: Seq[UserGroup]): Future[Int] = {
  dbConfig.db.run(this.userGroups ++= userGroups)
}