是否可以使用 Java 在 Google App Engine 上计算属性?
Is it possible to have a computed property on Google App Engine using Java?
我有一个 App Engine 应用程序,我想运行一个查询,根据涉及两个属性的表达式对结果进行排序。到目前为止,我想到的最好方法是创建一个 computed/calculated 属性来存储该表达式的结果。尽管我在 Python 中看到 GAE 提供了一个 ComputedProperty,这似乎正是我要找的东西,但我在 Java.
中找不到等效项
我目前也在使用 Objectify,如果有帮助的话。
有什么想法吗?
您可以创建一个涉及多个属性的索引。像这样:
class X{
@Indexed public String a;
@Indexed public String b;
}
<datastore-index kind="X" ancestor="false">
<property name="a" direction="asc" />
<property name="b" direction="asc" />
</datastore-index>
在此处阅读更多相关信息:https://cloud.google.com/appengine/docs/java/config/indexconfig
在@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 的方法是否更优雅。只需为 computed
.
取消 setter 方法
我有一个 App Engine 应用程序,我想运行一个查询,根据涉及两个属性的表达式对结果进行排序。到目前为止,我想到的最好方法是创建一个 computed/calculated 属性来存储该表达式的结果。尽管我在 Python 中看到 GAE 提供了一个 ComputedProperty,这似乎正是我要找的东西,但我在 Java.
中找不到等效项我目前也在使用 Objectify,如果有帮助的话。
有什么想法吗?
您可以创建一个涉及多个属性的索引。像这样:
class X{
@Indexed public String a;
@Indexed public String b;
}
<datastore-index kind="X" ancestor="false">
<property name="a" direction="asc" />
<property name="b" direction="asc" />
</datastore-index>
在此处阅读更多相关信息:https://cloud.google.com/appengine/docs/java/config/indexconfig
在@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 的方法是否更优雅。只需为 computed
.