我需要運行一個等同于此的程式,但是在一個事務中。
db.GetAll(ctx, datastore.NewQuery("Items").Ancestor(pkey), & itemContainers)
但是Transaction{}型別似乎沒有一個GetAll()方法。我怎樣才能做到這一點呢?
uj5u.com熱心網友回復:
要在事務中使用查詢,你應該將你的事務附加到查詢中。 例如:
q = datastore.NewQuery("Items").Ancestor(pkey).Transaction(tx)
db.Getall(ctx, q, &itemContainers)
uj5u.com熱心網友回復:
對于GetAll(),你不需要交易,你可以簡單地在你的*Client變數上呼叫它。
事務是針對需要一次性運行或回滾的原子操作集。例如,如果你有一組需要獲取的鍵,你會在Transaction型別上呼叫GetMulti()。https://pkg.go.dev/cloud.google.com/go/datastore#Transaction.GetMulti
GetAll可以用一個單一的操作來完成,它不需要在一個事務中分批進行。https://pkg.go.dev/cloud.google.com/go/datastore#Client.GetAll
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/317602.html
標籤:
