Tad*_*Tad 4 java google-app-engine google-cloud-datastore
我试图找出一种优雅的方法来查询 AppEngine 数据存储区中具有特定属性的所有实体。由于缺少属性的实体不包含在索引中,基本上我想要做的是检索给定属性的索引。我确信可以做类似的事情:
Filter bigger = new FilterPredicate(PROPERTY,
FilterOperator.GREATER_THAN_OR_EQUAL,
0);
Filter smaller = new FilterPredicate(PROPERTY,
FilterOperator.LESS_THAN_OR_EQUAL,
0);
Filter present = CompositeFilterOperator.or(bigger, smaller);
Query q = new Query(KIND).setFilter(present);
Run Code Online (Sandbox Code Playgroud)
但它看起来不像是一个非常优雅(或有效)的解决方案。有人有更好的主意吗?
如果您不需要具有空值的实体,您可以使用:
Filter filter = new FilterPredicate(PROPERTY, FilterOperator.NOT_EQUAL, null);
Run Code Online (Sandbox Code Playgroud)
它可能看起来更简单,但 NOT_EQUAL 过滤器实际上会产生两个单独的查询 - 就像您的解决方案一样,除非 App Engine 对空值很聪明 - 我不知道。
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |