2015-04-04 57 views
0

我是Google Appengine的新手。在學習Google Datastore的基礎知識時,我遇到了Entities的概念,並看到了定義和存儲它們的兩種方法。何時使用POJO在Google Appengine中定義實體?

一種方法是使用帶註釋的POJO來定義實體並在存儲它們之前在Objectify中註冊它們。

@Entity 
Class Employee{ 
    @Id 
    private long id; 
    String firstName; 
    String lastName; 

    // add constructors and getters 
} 

另外一個是隻使用Entity()構造函數來定義實體,後來設置的屬性:

Entity employee = new Entity("Employee"); 
employee.setProperty("firstName", "Antonio"); 
employee.setProperty("lastName", "Salieri"); 

我的問題時,應使用描述實體哪種方式?

回答

1

低級別API(您的第二個示例)允許您利用數據存儲的NonSQL特性,因爲對象實際上不存儲在表中,您可能具有具有不同屬性的相同類型的實體。如果你需要的話,這很棒,但它確實會讓你自己實現許多邏輯。

另一端物化(明確建議在JDO和JPA!)讓您輕鬆映射你的對象數據存儲區實體,並提供最質證/編組邏輯開箱。

我的問題是何時應該用哪種方式來描述實體?

這確實取決於您的項目需求,但根據我的經驗,99%的時間您從物品化中獲得所需的一切。它專爲GAE和它的數據存儲而設計,它的界面非常乾淨而且直觀。如果你是GAE的新手,並且想要融入你應該爲Objectify而去的概念,那麼你將會從痛苦的世界中拯救你自己:)

2

Objectify減少了鍋爐板代碼的數量,並做了許多有用的事情。

如果您知道如何使用它,低級數據存儲API是您描述的第二個選項,它需要更多的鍋爐板,但是可以提供更多的控制和更好的性能。

選擇取決於你更清楚的知識和你計劃實施的項目的細節。

相關問題