2016-12-03 28 views
0

我閱讀Vapor Fluent文檔,但沒有發現任何關於執行數據庫事務的任何事情。在Vapor Fluent(Mongo)中執行數據庫交易

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

例如,我想在一個事務中執行這部分代碼:

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 
     } 
    } 

是否有可能,如果我使用VaporMongo供應商?謝謝!

回答

0

是的,這是可能的。 Fluent會抽象你所有的基礎操作,所以你不必擔心它們。這樣,使用Mongo,PostgreSQL或自定義驅動程序並不重要,您的代碼不需要更改。