2015-09-09 47 views
0

根據操作結果執行數據庫操作並返回響應的最佳方式是什麼?(Play framework,Slick 3.0)執行數據庫操作並根據結果返回響應

實施例有一個DAO,稱之爲AccountDAO其具有方法

def insert(account: Account): Future[Account] 

以我服務層,AccountService我會做,

def create(account: Account) : Try[Future[Account]] = Try { 
    accountDAO.insert(account) 
} 
在我的控制器

然後

accountService.create(account) match { 
    case Success(account) => // This will return a Future[Account] 
          // returns a created response 
    case Failure(e) => // returns a 500 response 
} 

有什麼更好的方法來做到這一點?

回答

0

您還可以在Future中使用recover。這裏的例子:

def create(account: Account) : Future[Account] = accountDAO.insert(account) 

和控制器:

accountService.create(account).map{ 
    OK(Json.toJson(_)) //returns a response 
}.recover { 
    case ex => // returns a 500 response 
} 

我想這裏有沒有 「最好」 的解決方案。

相關問題