1

Scala Anormに空の行の結果を処理させる方法はありますか?

このエラーが発生します:[RuntimeException:SqlMappingError(単一の行が必要な場合は行がありません)]

私の方法:

def findByEmail(email: String): User = {
      DB.withConnection { implicit connection=>
        SQL("SELECT * FROM users WHERE email = {email}").on(
          'email  -> email
          ).as(User.simple.single)
      }
}
4

2 に答える 2

3

あなたはほとんどそこにいました、シングルと奇妙なケースマッチングを使う必要はありません。これを行うだけです:

def findByEmail(email: String): Option[User] = {
  DB.withConnection { implicit connection=>
    SQL("SELECT * FROM users WHERE email = {email}").on(
      'email  -> email
      ).as(User.simple.singleOpt)
  }
}
于 2014-02-06T22:54:02.390 に答える
-2

誰かがこのエラーに遭遇した場合、これは私が地雷を解決した方法です:

   def findByEmail(email: String): User = {
        DB.withConnection { implicit connection=>
          val query = SQL("SELECT * FROM users WHERE email = {email}").on(
            'email  -> email
          )
          simple.single(query()) match {
              case Success(user) => user
              case Error(e) => null
          }
        }
    }

ケースは何にでも設定できます

于 2013-03-19T17:36:48.563 に答える