我一直在努力尝试正确配置多对多关系,这应该是直截了当的。
我有一个购物清单类和一个项目类。我只是希望购物清单能够保存物品清单。
请不要回复 Google App 引擎文档链接,我正在寻找有人在他们自己的项目中使用过的工作示例,而不是 Google 松散地抛出的理论。
我一直在努力尝试正确配置多对多关系,这应该是直截了当的。
我有一个购物清单类和一个项目类。我只是希望购物清单能够保存物品清单。
请不要回复 Google App 引擎文档链接,我正在寻找有人在他们自己的项目中使用过的工作示例,而不是 Google 松散地抛出的理论。
您不能像在 mongodb 中那样在父项中“保留”项。
但是,您可以从购物清单类中引用您的项目类
从您的项目类中获取 ID,并将它们添加到您的购物清单类中。它看起来像:
我知道你不想要 gae 文档,但他们有一个用于建模关系的页面here
这很简单。
创建一个持有多对多关系的类。在你的情况下:
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。