我正在尝试删除某种实体。删除后我试图在同一种类型上进行查询。但问题是,即使在删除所有实体之后,查询也会给出带有'n'行数的结果。我知道这是HRD问题,其中索引尚未删除。但我想知道查询在哪里获取数据,虽然我们删除了实际数据。
考虑以下代码,
class CustomReportInfo {
String reportName;
// Setter and getters
}
这里我尝试删除CustomReportInfo类实体。为了删除我正在做的实体,
List<CustomReportInfo> customReportInfoList = query(CustomReportInfo.class).list();
delete(customReportInfoList);
因此,如您所见,我将删除CustomReportInfo的所有实体。之后,我试图在同一种类型上进行查询。像,
List<CustomReportInfo> list = query(CustomReportInfo.class).list();
删除后我仍然获得'n'行数。即使在删除实际数据之后,查询从哪里获得结果?
答案 0 :(得分:0)
Cloud Datastore中的最终一致性意味着如果您运行全局查询(如示例中的那个),它可能会返回已删除的结果。
要确保已删除的实体不会出现在查询结果中,您可以将实体重组为用户祖先。在this article中概述了其中一些问题。