2015-09-09 45 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 
} 

我想这里有没有 “最好” 的解决方案。

相关问题