Java GAE:我可以通过比较实体的属性来过滤吗?

Java GAE: Can I filter by comparing the properties of entities?

我需要查询具有相同属性的实体,例如:

class Relation {
  Integer a;
  Integer b;
}

Query q = pm.newQuery(Relation.class);
q.setFilter("a == b");

上面的查询 returns 空列表,我还没有找到任何方法来完成这个任务。

查看 the documentation 的数据存储查询,它明确指出:

The property value must be supplied by the application; it cannot refer to or be calculated in terms of other properties.

所以你想做的事是不可能的。

你可以做的一件事是:

1- 将第三个 属性 添加到您的实体(比如一个名为 "equals" 的布尔值)。

2- 每当你更新你的实体时,你检查是否 a == b.

3- 根据 2.

中的检查更新 "equals"

4-要查询,你看where equals == true.