2016-12-03 3 views
0

Vapor Fluentのドキュメントを読んでいますが、 データベーストランザクションを実行することについて何も見つかりませんでした。例えばVapor Fluent(Mongo)でデータベーストランザクションを実行

https://vapor.github.io/documentation/fluent/driver.html

、私は単一のトランザクションで、コードのこの部分を実行したい:私はVaporMongoプロバイダを使用している場合

var order = Order(customerId: customer.id!, 
         createdDate: Int(Date().timeIntervalSince1970), 
         availabilityDate: orderDate) 
    do { 
     try order.save() 
    } catch { 
     throw Abort.serverError 
    } 

    for jsonItem in items { 
     guard let object = jsonItem.object else { 
      continue 
     } 
     let menuItemId = object["item_id"]!.string! 
     let quantity = object["quantity"]!.int! 

     guard let menuItem = try MenuItem.find(menuItemId) else { 
      continue 
     } 

     var orderItem = OrderItem(orderId: order.id!, 
            menuItemId: menuItem.id!, 
            quantity: quantity) 
     do { 
      try orderItem.save() 
     } catch { 
      throw Abort.serverError 
     } 
    } 

それは可能ですか?ありがとう!

答えて

0

はい、可能です。 Fluentは、基本的な操作をすべて抽象化しているため、心配する必要はありません。こうすることで、Mongo、PostgreSQL、またはカスタムドライバを使用するかどうかは関係ありません。コードを変更する必要はありません。

関連する問題