是否有一种方法可以让Scala Anorm处理空行结果?
我只是得到这个错误:[RuntimeException: SqlMappingError(No rows when expected a single)]
我的方法:
def findByEmail(email: String): User = {
DB.withConnection { implicit connection=>
SQL("SELECT * FROM users WHERE email = {email}").on(
'email -> email
).as(User.simple.single)
}
}
你差不多就完成了,不需要使用单字符和奇怪的大小写匹配。只需这样做:
def findByEmail(email: String): Option[User] = {
DB.withConnection { implicit connection=>
SQL("SELECT * FROM users WHERE email = {email}").on(
'email -> email
).as(User.simple.singleOpt)
}
}
如果有人遇到这个错误,我是这样解决的:
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
}
}
}
你可以将大小写设置为