【发布时间】:2014-03-19 23:19:27
【问题描述】:
当 Option[String] 为 None 时,插入 Option[String] 的正确方法是什么?下面的代码插入了一个空字符串,和mysql中的NULL不一样。
是否只有根据 partnerCode 的内容预先构建 SQL 字符串?叹息...异常...
DB.withConnection { implicit connection =>
val id: Option[Long] = SQL(
"""
INSERT INTO users (email, partner_code, is_active, created, pass) VALUES ({email}, {partnerCode}, 0, NOW(), {pass})
"""
).on(
'email -> user.email,
'partnerCode -> user.partnerCode.getOrElse(""), // FIXME: how to use NULL keyword instead of empty string? Is Anorm just this dumb?
'pass -> hashPassword(user.password.get)
).executeInsert()
id.get
}
【问题讨论】:
-
'partnerCode -> user.partnerCode.getOrElse(null) 似乎工作正常,但这似乎很笨重。猜猜 partnerCode 真的不应该是可选的。
标签: mysql scala sql-insert anorm