应用程序引擎多对多关系JAVA

应用程序引擎多对多关系JAVA,java,google-app-engine,datastore,relationships,Java,Google App Engine,Datastore,Relationships,我一直在努力正确配置多对多关系,这应该是直截了当的 我有一个购物清单类和一个物品类。我只是希望购物清单能够容纳物品清单 请不要回复Google App engine文档链接,我正在寻找一个有人在他们自己的项目中使用的工作示例,而不是Google随意抛出的理论。你不能像在mongodb中那样在父项中“保存”项 但是,您可以从购物列表类中引用items类 从item类中获取ID并将其添加到shopping list类中。它将看起来像: 我知道你不想要gae文档,但他们有一个页面用于建模关系,这很简

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

我有一个购物清单类和一个物品类。我只是希望购物清单能够容纳物品清单


请不要回复Google App engine文档链接,我正在寻找一个有人在他们自己的项目中使用的工作示例,而不是Google随意抛出的理论。

你不能像在mongodb中那样在父项中“保存”项

但是,您可以从购物列表类中引用items类

从item类中获取ID并将其添加到shopping list类中。它将看起来像:

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

创建一个包含多对多关系的类。就你而言:

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

您需要停止将数据存储视为关系数据库。这不是一个关系数据库。告诉GAE上的关系文档,这是我最初打算做的,但在阅读了Google文档后,我确信有更好的方法来做,因为它建议您可以模拟实际的关系数据库。谢谢你的例子