2012-01-25 12 views
2

が、これは クラスの複合キーを定義するための正しい方法です:JDOアプリエンジン:複合キー

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

私はペア(ID、sellerID)はユニークになりたいので、ないその上だけのid自分の。

したがってApp Engineデータストアでは、私がキーに何とか両方 フィールドを組み込んだ実体を必要とする(例えば、それらを連結するダッシュと で区切る)が、私は アプリエンジンを指示については移動する方法について確認していませんJDOを介して、または低レベルのAPIを介して行うこともできます。

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

は文字列のキーを作成し、二つのフィールドを連結します。

答えて

4

ここで最も簡単な方法は、KeyFactoryにを使用すると、あなたがするたびに発生する単一のキーを使用することです。 2つの@PrimaryKeyアノテーションを作成することはできません。App Engineをできるだけキー値ストアに近いものとして扱います。私は本当にここにHashMap /辞書としてデータストアを考える方法についてのジェフ・シュニッツァーの説明のように:

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