首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Datastore Transaction API与Datastore API在事务中的比较

Google Datastore Transaction API与Datastore API在事务中的比较
EN

Stack Overflow用户
提问于 2018-02-08 12:31:15
回答 2查看 135关注 0票数 1

两天来,我一直在与Google Cloud Datastore事务作斗争。

我不确定在Google Datastore事务中应该使用datastore.save还是transaction.save。

常见代码:

代码语言:javascript
复制
const datastore = new Datastore();
const transaction = datastore.transaction();

场景1:

代码语言:javascript
复制
transaction.run()
    datastore.save(x)
transaction.commit()

场景2:

代码语言:javascript
复制
transaction.run()
    transaction.save(x)
transaction.commit()

文档中有一些示例,它们在transaction.run和transaction.commit中同时使用事务方法和数据存储方法,但我不知道是否需要这样的方法。

对于我来说,Datastore.save会更容易一些,但是考虑到有一个transaction.save方法,这看起来很奇怪。

EN

回答 2

Stack Overflow用户

发布于 2018-02-09 07:35:08

如果我错了,请纠正我,这是我目前对的理解

如果您想要在事务内写入数据存储,则需要使用transaction对象来执行此操作,即transaction.save & transaction.delete;datastore.save & datastore.delete将不在事务中,即使您将它们放入事务块中也是如此。

如果您想从事务内的数据存储中读取数据,那么事务和数据存储对象都可以很好地工作。两者都将基于事务开始时拍摄的快照进行读取。

票数 0
EN

Stack Overflow用户

发布于 2018-02-15 14:06:40

Datastore对象是为代码创建的客户端,用于连接到实体。然而,使用事务对象,您将基于数据存储客户端创建一个对象,以将逻辑应用于查询和更新。

在您提到的情况下,datastore.save将应用于对指定对象的插入或更新。transaction.save将应用于对事务中指定对象的插入或更新,因此,应该在事务块中使用transaction.save。

最后,抓取实体应该(正如您所提到的)与这两个对象一起工作,因为它们最终都是数据存储客户端。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48677571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档