洗練された n00b の並べ替え...挿入ステートメントを作成しようとしていますが、何も挿入していないことがわかりました。
def newUser(userName: String, email: Option[String], password: String = null, removed: Option[Int] = null) = SlickInit.dbMaster withSession {
val creation = Option(new java.sql.Timestamp(new java.util.Date().getTime()))
val last = new java.sql.Timestamp(new java.util.Date().getTime())
printf("REACHED 1. creation: " + creation + "\n last: " + last)
println("\nusername: " + userName + "\n email: " + email)
println("maxId: " + maxId)
val invoker = Users.insertInvoker
(Users.userId ~ Users.userName ~ Users.email ~ Users.userPassword ~ Users.creationDate ~ Users.lastLoginDate ~ Users.removed).insert(maxId, userName, email, password, creation, last, removed)
val statement = Users.insertStatement
println("REACHED 2. \n\nStatement: " + statement)
}
REACHED 1 は、POST 要求が発行されたときに (目的の値で) 印刷されますが、REACHED 2 は印刷されません。(また、明らかに、データベースにクエリを実行すると、挿入された値は返されません。)これについて洞察を持っている人はいますか?
編集、ここに私のユーザーテーブルの定義があります:
object Users extends Table[(Int, String, Option[String], String, Option[Timestamp], Timestamp, Option[Int])]("APUsers") {
def userId = column[Int]("UserId", O.PrimaryKey, O.AutoInc)
def userName = column[String]("UserName")
def email = column[Option[String]]("Email", O.Nullable)
def userPassword = column[String]("UserPassword")
def creationDate = column[Option[Timestamp]]("CreationDate", O.Nullable)
def lastLoginDate = column[Timestamp]("LastLoginDate")
def removed = column[Option[Int]]("removed", O.Nullable)
def * = userId ~ userName ~ email ~ userPassword ~ creationDate ~ lastLoginDate ~ removed
}