对 Ref'd 实体的复合或 FilterPredicate 查询

Composite or FilterPredicate query on Ref'd entity

这是我的:

class A{
  Ref<foo> b;
  Ref<foo> c;
  int      code;
  Date     timestamp
}

SQL 语句的伪 "where" 子句像这样:

其中 b = 对象或(c = 对象和代码 = 1)按时间戳排序

用简单的英语,如果b等于特定对象或者当代码等于1时c等于指定对象,给我所有A的记录。用时间戳排序结果。

复合查询部分甚至可以使用数据存储 (Objectify) 吗?我真的不想做两个查询并合并结果,因为我必须按时间戳排序。

感谢任何帮助。

P.S。我已经试过了

new FilterPredicate(b, EQUAL, object)

这没有用,因为实体类型不是支持类型。

谢谢!

将本机数据存储 Key 对象传递给 FilterPredicate。 Google SDK Key,而不是通用的 Objectify Key<?>

通常在过滤属性时,Objectify 会为您将 Ref<?>Key<?> 对象转换为本机数据存储键。对于 google-supplied FilterPredicate,这不是一个选项。所以你必须手动进行翻译。

Objectify 存储所有 Key<?>Ref<?> 字段以及本机数据存储 Key,因此您可以自由交换它们(如果需要,甚至可以更改字段类型)。