是否可以使用Java在Google App Engine上拥有计算属性?

我有一个应用程序引擎应用程序,我想运行一个查询,根据涉及两个属性的表达式对结果进行排序。 到目前为止,我想到的最好方法是创建一个计算/计算属性来存储该表达式的结果。 虽然我看到Python中的GAE提供了ComputedProperty,这似乎正是我正在寻找的,但我找不到Java中的等价物。

我现在也在使用Objectify,如果这有帮助的话。

有任何想法吗?

在@OnSave方法中计算您的值:

@Entity public class YourEntity { @Id Long id; String foo; String bar; @Index String computed; @OnSave void computeComputed() { computed = // synthesize from foo and bar } } 

这就是NDB的ComputedProperty实际上做的事情。 Java并没有真正匹配该语法的方法,我不确定NDB的方法是否更优雅。 只需不要使用setter方法进行computed

您可以创建涉及多个属性的索引。 像这样的东西:

 class X{ @Indexed public String a; @Indexed public String b; }     

在此处详细了解: https : //cloud.google.com/appengine/docs/java/config/indexconfig