当使用 GAE 进行交易时,传递实体是可以的,或者你应该总是传递 key 给实体。例如,假设我正在将资金从一个实体转移到另一个实体。我应该这样做吗:
@ndb.transactional(xg=True)
def transfer_money(key1, key2, amount):
entity1 = key1.get()
entity2 = key2.get()
entity1.money -= amount
entity2.money += amount
ndb.put_multi([entity1, entity2])
或者这样可以吗:
@ndb.transactional(xg=True)
def transfer_money(entity1, entity2, amount):
entity1.money -= amount
entity2.money += amount
ndb.put_multi([entity1, entity2])
还是取决于其他因素?
最佳答案
AFAIK #2 不起作用(事务性),您需要加载(并放入)事务中的对象。
关于python - GAE 交易 : pass entity or key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31213881/