【问题标题】:How to properly use Scala Play Anorm and Option[String] to insert NULL SQL如何正确使用 Scala Play Anorm 和 Option[String] 插入 NULL SQL
【发布时间】: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


【解决方案1】:

如果您导入anorm._anorm.toParameterValueNone 实际上应该可以正常工作:

'partnerCode -> user.partnerCode

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-10-04
  • 2013-03-13
  • 1970-01-01
  • 2020-11-28
  • 1970-01-01
  • 2013-10-20
  • 2018-07-19
  • 1970-01-01
相关资源
最近更新 更多