app引擎查询过滤'id'范围的实体,忽略祖先

时间:2011-08-07 18:54:22

标签: java google-app-engine

我有类似的实体:

实体[产品(147)]
实体[制造商(23)/产品(131)]
实体[制造商(17)/产品(131)]

现在,我正在尝试使用查询来查询所有具有100及以上ID的“产品”实体。像上面的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));

这个部分工作的只为'根'实体提供了正确的结果,即没有祖先的实体。

任何修改它的方法都会忽略祖先?谢谢!

1 个答案:

答案 0 :(得分:0)

没有内置方法可以做到这一点,因为这个查询毫无意义。分配ID使得它们对于给定种类和父是唯一的。如果实体可能具有不同的父实体,则不能单独依赖ID来唯一地标识实体,因此无论父级如何,查询一系列ID都是毫无意义的。