2012-01-25 58 views
2

這是定義一個複合鍵 一類的正確方法:JDO應用程序引擎:複合鍵

@PersistenceCapable 
class Item { 
    @PrimaryKey 
    long id; 
    @PrimaryKey 
    String sellerID; 
    // ... other fields follow 
} 

,因爲我想對(ID,sellerID)是唯一的,不是隻對ID的擁有。

因此在App Engine數據存儲,我需要這在某種程度上既包含 領域進入一鍵(例如他們用破折號分離和 串聯它們)的實體,但我不知道如何去指導 應用程序引擎通過JDO或甚至通過低級API來實現。

回答

4

這裏最簡單的方法是使用的KeyFactory,並利用您生成每次一個重點:

http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/KeyFactory.Builder.html

創建一個字符串鍵並連接這兩個領域。創建兩個@PrimaryKey註釋將不起作用 - 儘可能將App Engine儘量靠近鍵值存儲。我真的很喜歡Jeff Schnitzer在這裏解釋如何將數據存儲視爲HashMap/Dictionary:

http://code.google.com/p/objectify-appengine/wiki/Concepts

相關問題