0

我一直在努力尝试正确配置多对多关系,这应该是直截了当的。

我有一个购物清单类和一个项目类。我只是希望购物清单能够保存物品清单。

请不要回复 Google App 引擎文档链接,我正在寻找有人在他们自己的项目中使用过的工作示例,而不是 Google 松散地抛出的理论。

4

2 回答 2

0

您不能像在 mongodb 中那样在父项中“保留”项。

但是,您可以从购物清单类中引用您的项目类

从您的项目类中获取 ID,并将它们添加到您的购物清单类中。它看起来像:

db.ListProperty(db.Key)

我知道你不想要 gae 文档,但他们有一个用于建模关系的页面here

于 2012-05-12T17:29:29.550 回答
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().put(record) 来自 Objectify 术语,但您可以根据需要使用 JPA 或 JDO。

于 2012-05-12T17:59:08.957 回答