如何使用String作为insert语句

时间:2016-01-25 17:09:03

标签: sql scala sql-insert slick slick-3.0

也许我使用Table.insertStatementFor错了。

我使用的是Slick 3.0.x和Scala-2.11.x

有以下类和对象:

case class User(id:Int, name:String)

class Users(tag: Tag) extends Table[User](tag, "users") {
  def id = column[Int]("id", O.PrimaryKey)
  def name = column[String]("name")
  def * = (id, name) <> (User.tupled, User.unapply)
}

val table = TableQuery[Users]

我想获取带有数据的insert语句字符串。 方法table.insertStatement返回

INSERT INTO users(id, name) VALUES(?,?)

我想为User(1, "John")获取以下字符串:

INSERT INTO users(id, name) VALUES(1, 'John');

我尝试使用方法table.insertStatementFor(User(1, "John")),但它不起作用并引发异常:

not enough arguments for method insertStatementFor: (implicit shape: scala.slick.lifted.Shape[_ <: scala.slick.lifted.FlatShapeLevel, models.User, ...

此任务的解决方案是否存在?

0 个答案:

没有答案