Scala TableQuery到案例类列表

Scala TableQuery到案例类列表,scala,playframework-2.0,slick-3.0,Scala,Playframework 2.0,Slick 3.0,我有一个play应用程序,它使用slick 3在下面查询Mysql DB: 我定义了一个用例类和用户,如下所示: case class User(id: Option[Int], first: String, last: String) class Users(tag: Tag) extends Table[User](tag, "users") { def id = column[Int]("id", O.PrimaryKey, O.AutoInc)

我有一个play应用程序,它使用slick 3在下面查询Mysql DB: 我定义了一个用例类和用户,如下所示:

    case class User(id: Option[Int], first: String, last: String)

    class Users(tag: Tag) extends Table[User](tag, "users") {
      def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
      def first = column[String]("first")
      def last = column[String]("last")
      def * = (id.?, first, last) <> (User.tupled, User.unapply)
    }
val users = TableQuery[Users]
类似地,如果我有一个列表[User]作为需要添加到数据库中的userList。那么

users.map(usr => (usr.id,usr.first,usr.last))+=((userList(0).id,userList(0).first, userList(0).last)) //Iterate over all element 
所以我希望有一种更简洁明了的方法将case类列表转换为TableQuery,反之亦然。有更好的方法吗

上述解决方案运行良好,但我有十几个表需要填充。然后它开始变得丑陋和重复。

可以使用如下所示的+++=方法将用户类实例列表写入表中

def insert(data: List[User]) = {
  db.run(users ++= data)
}
根据姓氏进行查询,如下所示。下面的方法返回未来的用户列表


将案例类列表转换为表格查询的简明方法你的意思是想要一种将案例类列表写入表格的简明方法吗?是@rogue one,案例类列表到表格,表格到案例类列表。这太棒了!!。
def insert(data: List[User]) = {
  db.run(users ++= data)
}
def queryLastName(lastName: String): Future[List[User]] = {
  db.run(users.filter(usr => usr.last === lastName).result)
}