slick in play scala 错误
error from slick in play scala
我玩scala,玩的很流畅。
我想知道如何在游戏中捕捉到错误。
比方说,有一个 DAO:
trait UserDao extends DAOSlick with UserComponent with HasDatabaseConfig[JdbcProfile] {
import driver.api._
def getUserWithId(id: UUID) = {
db.run(userTable.filter { x => x.userId === id }.result.head)
}
}
我的控制器中使用了这个特性:
class UserController extends Controller with UserDao {
import driver.api._
def getUser(id: String) = Action.async { implicit request =>
getUserWithId(UUID.fromString(id)).map {
res => Ok(Json.toJson(res))
}
}
}
如果没有给定 ID 的用户,slick 会报错:
[NoSuchElementException: Invoker.first]
在我的客户端(浏览器)中,我收到状态 500(内部服务器错误)。
我没有找到示例,slick 和 play 应该如何与来自数据库或 slick 的错误消息一起工作。
所有 DAO 的 return 类型都应该是 Try[User] 吗?
在我看到的所有例子中,没有人关心失败的 slick 调用。我错过了什么?
Should the return type of all DAOs be an Try[User]? In all examples I saw, nobody cares about failing slick calls. What am I missing?
你不见了Option。将您的 DAO 方法更改为 return Option[User]
并在 result
.
上调用 head
调用 headOption
我玩scala,玩的很流畅。 我想知道如何在游戏中捕捉到错误。
比方说,有一个 DAO:
trait UserDao extends DAOSlick with UserComponent with HasDatabaseConfig[JdbcProfile] {
import driver.api._
def getUserWithId(id: UUID) = {
db.run(userTable.filter { x => x.userId === id }.result.head)
}
}
我的控制器中使用了这个特性:
class UserController extends Controller with UserDao {
import driver.api._
def getUser(id: String) = Action.async { implicit request =>
getUserWithId(UUID.fromString(id)).map {
res => Ok(Json.toJson(res))
}
}
}
如果没有给定 ID 的用户,slick 会报错:
[NoSuchElementException: Invoker.first]
在我的客户端(浏览器)中,我收到状态 500(内部服务器错误)。 我没有找到示例,slick 和 play 应该如何与来自数据库或 slick 的错误消息一起工作。
所有 DAO 的 return 类型都应该是 Try[User] 吗? 在我看到的所有例子中,没有人关心失败的 slick 调用。我错过了什么?
Should the return type of all DAOs be an Try[User]? In all examples I saw, nobody cares about failing slick calls. What am I missing?
你不见了Option。将您的 DAO 方法更改为 return Option[User]
并在 result
.
head
调用 headOption