我有这样的实体:
实体[产品(147)]
实体[制造商(23)/产品(131)]
实体[制造商(17)/产品(131)]
现在,我尝试使用查询来查找 ID 为 100 及以上的“产品”类型的所有实体。比如上面的 147 和 131。
问题是我不知道如何请求这些,在查询中将祖先与其“分离”。
尝试过这些:
不工作:
SELECT __key__ FROM products WHERE ID >= 100
部分工作:
SELECT __key__ FROM products WHERE __key__ >= 100
这是我插入查询过滤器的方式:
query.addFilter("__key__", FilterOperator.GREATER_THAN_OR_EQUAL, KeyFactory.createKey("products", 100));
这个部分工作的实体只为“根”实体(即没有祖先的实体)提供正确的结果。
有什么方法可以修改它,使其忽略祖先吗?谢谢!
最佳答案
没有内置方法可以执行此操作,因为此查询毫无意义。 ID 的分配使得它们对于给定种类和父是唯一的。如果实体可能具有不同的父实体,则不能仅依靠 ID 来唯一标识该实体,因此无论父实体如何,查询一系列 ID 都是毫无意义的。
关于java - 应用程序引擎查询按 'id' 范围的实体进行过滤,忽略祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6974987/