具有多个祖先实体组的GAE数据存储区事务

时间:2013-05-09 15:58:35

标签: google-app-engine google-cloud-datastore entity-group-transactions

从文档中我不清楚哪个祖先是交易的边界。最接近的一个,还是根一个?

我有一个根实体(A),它有一些后代(B1,B2 ... Bn),那些可以有许多祖先(C1,C2 ......)。我将在C实体(Cs)上进行交易,我将使用基于B实体的祖先查询获得。问题是,如果另一笔交易在同一时间内改变了B2下的某些C,那么B1下的Cs的变化会抛出ConcurrentModificationException吗?

所有Cs是否属于其祖父母A下的同一实体组,或实体组是否也划分为较小的“子实体组”,即B下的每组C都有自己的实体组?

1 个答案:

答案 0 :(得分:1)

边界是根。

来自https://developers.google.com/appengine/docs/python/datastore/transactions

  

事务中的所有数据存储区操作都必须对同一实体组中的实体进行操作

  

每个根实体属于一个单独的实体组,因此单个事务无法在多个根实体上创建或操作

所以A下的所有内容都是一个实体组。