Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 有没有办法在Google数据存储中获取当前事务的实体组?_Google App Engine_App Engine Ndb_Google Cloud Datastore - Fatal编程技术网

Google app engine 有没有办法在Google数据存储中获取当前事务的实体组?

Google app engine 有没有办法在Google数据存储中获取当前事务的实体组?,google-app-engine,app-engine-ndb,google-cloud-datastore,Google App Engine,App Engine Ndb,Google Cloud Datastore,数据存储自动设置事务的实体组。我想知道当我在交易中时设置了什么。为了详细说明,假设我有以下在事务中运行的函数foo: @ndb.transactional def foo(): bar1() bar2() bar1对数据存储执行一些操作。它获取、放置、创建实体、运行查询等。由于bar1在事务内部运行,因此它执行的所有操作和运行的查询必须限制为单个实体组,这符合数据存储API严格执行的要求(假设这不是XG事务) 现在在bar2中,我想通过编程确定事务的实体组。我没有任何关于bar

数据存储自动设置事务的实体组。我想知道当我在交易中时设置了什么。为了详细说明,假设我有以下在事务中运行的函数
foo

@ndb.transactional
def foo():
    bar1()
    bar2()
bar1
对数据存储执行一些操作。它获取、放置、创建实体、运行查询等。由于
bar1
在事务内部运行,因此它执行的所有操作和运行的查询必须限制为单个实体组,这符合数据存储API严格执行的要求(假设这不是XG事务)

现在在
bar2
中,我想通过编程确定事务的实体组。我没有任何关于
bar1
中发生了什么的信息

这可能吗

主要是为了测试和理解如何以及何时设置事务的实体组


我在官方文档中找不到这样做的方法。

它在文档中。查看键和实体组的结构

“实体组是一组通过祖先连接到实体的实体 公共根元素。可以将数据组织到实体组中 限制可以执行的事务:

实体组由键中的父项定义(没有父项的单个实体本身有一个实体组)


因此,如果您有密钥,您就有实体组。

我想您误解了。我知道文档描述了什么是实体组以及它与交易的关系。我想要的是以编程方式检索正在运行的事务的当前实体组的键。实体组由您在事务中拥有的实体的键定义。如果你有实体,你就有钥匙。如果您有密钥,您就知道实体组-不是吗?如果您有XG(跨实体组事务,则每个不同的父键定义每个实体组)。实体的键属性为您提供键。那你有什么问题?重读祖先路径。很明显,实体组的根是什么。尽管如此,还有一个未记录的键方法,它使事情变得更简单,称为root()。“”“返回根密钥。这是self或最高的父项。”“”您仍然缺少问题。让我来详细说明一下。假设我有一个在事务中运行的函数
foo()
foo
调用
bar1()
bar2()
<代码>bar1对数据存储执行一些操作。它放置、创建、运行查询等。由于处于事务中,这些操作仅限于处于单个实体组中。数据存储API确保了这一点。现在,在
bar2
中,在不了解任何有关
bar1
的信息的情况下,我想检索当前实体组(用于其所有数据存储操作的
bar1
的根实体)。这有助于澄清吗?