我有一個應用程序引擎應用程序,我想運行一個查詢,根據涉及兩個屬性的表達式對結果進行排序。到目前爲止,我認爲最好的方法是創建一個計算/計算的屬性,存儲該表達式的結果。雖然我看到Python中的GAE提供了一個ComputedProperty,這似乎正是我正在尋找的,但是我無法在Java中找到等價物。是否有可能在Google App Engine上使用Java計算屬性?
我目前也在使用Objectify,如果有幫助的話。
任何想法?
我有一個應用程序引擎應用程序,我想運行一個查詢,根據涉及兩個屬性的表達式對結果進行排序。到目前爲止,我認爲最好的方法是創建一個計算/計算的屬性,存儲該表達式的結果。雖然我看到Python中的GAE提供了一個ComputedProperty,這似乎正是我正在尋找的,但是我無法在Java中找到等價物。是否有可能在Google App Engine上使用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的方法更優雅。只要放棄設置方法computed
。
您可以創建一個涉及多個屬性的索引。事情是這樣的:
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
謝謝,但我實際上正在尋找一種方法來根據從現有的2個計算出的新屬性(在您的示例中稱爲「a」和「b」)來計算結果。 stickfigure的答案爲我做了訣竅。 –