2012-05-12 19 views
0

私はまっすぐにすべき多対多の関係を正しく構成しようと壁に頭を打っています。App Engine多人数から多人数の関係JAVA

私はA 買い物リストクラス、およびアイテムクラスを持っています。私は買い物リストがアイテムのリストを保持できるようにしたいだけです。

Google App Engineのドキュメントのリンクに返信しないでください。私は誰かが自分のプロジェクトで使ってきた実例を探しています.Googleではゆるく投げ捨てた理論ではありません。

+0

データストアをリレーショナルデータベースとして考える必要はありません。リレーショナルデータベースではありません**。 –

+0

GAEのリレーションシップドキュメントにそれを伝えてくださいhttps://developers.google.com/appengine/docs/java/datastore/jdo/relationships – NathofGod

答えて

0

それは簡単ですのページを持っています。

多対多の関係を保持するクラスを作成します。あなたのケースでは:ここでは

class ShoppingListItems(){ 

    @Id 
    private String id; 
    private Long shoppingListId; 
    private Long itemId; 

    public ShoppingListItems(Long shoppingListId, Long itemId) { 
    this.id = shoppingListId.toString() + "-" + itemId.toString(); 
    this.shoppingListId = shoppingListId; 
    this.itemId = itemId; 
    } 

    public String getId() { 
    return id; 
    } 

    public static void addItemToList(Long shoppingListId, Long itemId, DAO dao) { 
     // add shopping list and itemsr IDs to the ShoppingListItems 'join' table 
     ShoppingListItems record = new ShoppingListItems(shoppingListId, itemId); 
     dao.ofy().put(record); 
    } 

@Idとdao.ofy()(レコード)を入れ客観の専門用語から来ていますが、好むとあなたはJPAやJDOを使用することができます。

+0

これは私がもともとやっていたことですが、Googleドキュメントを読んだ後、私は確信していました実際のリレーショナルデータベースを模倣できることを示唆しているため、より良い方法です。あなたの例をありがとう – NathofGod

0

あなたはmongodbのように親アイテムの中にアイテムを保持することはできません。

ただし

は、あなたのアイテムクラスからIDを取り、あなたの買い物リストクラスに追加買い物リストクラスからあなたの項目のクラスを参照することができます。それは次のようになります。私はあなたがGAEのドキュメントをたくない知っている

db.ListProperty(db.Key)

を彼らはモデリングの関係here