2015-01-08 86 views
0

我有一個應用程序引擎應用程序,我想運行一個查詢,根據涉及兩個屬性的表達式對結果進行排序。到目前爲止,我認爲最好的方法是創建一個計算/計算的屬性,存儲該表達式的結果。雖然我看到Python中的GAE提供了一個ComputedProperty,這似乎正是我正在尋找的,但是我無法在Java中找到等價物。是否有可能在Google App Engine上使用Java計算屬性?

我目前也在使用Objectify,如果有幫助的話。

任何想法?

回答

1

在@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

0

您可以創建一個涉及多個屬性的索引。事情是這樣的:

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

+0

謝謝,但我實際上正在尋找一種方法來根據從現有的2個計算出的新屬性(在您的示例中稱爲「a」和「b」)來計算結果。 stickfigure的答案爲我做了訣竅。 –

相關問題