当前位置: 首页 > 面试题库 >

使用Java的Google App Engine中的多对多关系

农雅畅
2023-03-14
问题内容

是否可以在Google App Engine中的对象之间建立多对多关系?
我是GAE的新手,仍然在阅读有关它的信息。该编码似乎与我习惯的Java编码完全不同。我已经阅读了入门留言簿教程。那么,我可以从GAE用户那里获得任何帮助/教程/视频/知识吗?
谢谢。


问题答案:

关于文档,这是一个很好的起点:

http://code.google.com/appengine/docs/java/overview.html

在http://code.google.com/appengine/docs/java/datastore/jdo/relationships.html中尊重多对多关系:

我们可以通过维护关系两侧的键集合来建立多对多关系的模型。让我们调整示例,让Food跟踪那些认为它是最受欢迎的人:

人.java

import java.util.Set;
import com.google.appengine.api.datastore.Key;

// ...
    @Persistent
    private Set<Key> favoriteFoods;

Food.java

import java.util.Set;
import com.google.appengine.api.datastore.Key;

// ...
    @Persistent
    private Set<Key> foodFans;

在此示例中,人员维护一组键值,这些值唯一地标识收藏夹中的食物对象,而食品保持一组键值,其唯一地标识认为其收藏夹中食物的对象。使用键值对多对多进行建模时,请注意,保持关系的双方是应用程序的责任:

相册.java

// ...
public void addFavoriteFood(Food food) {
    favoriteFoods.add(food.getKey());
    food.getFoodFans().add(getKey());
}

public void removeFavoriteFood(Food food) {
    favoriteFoods.remove(food.getKey());
    food.getFoodFans().remove(getKey());
}


 类似资料:
  • 问题内容: 我有一个Firebase数据库。我有公司和承包商。一个承包商可以为多个公司工作,而一个公司可以有多个承包商。这是直接的多对多关系。我希望能够回答有关公司和承包商的问题: 给定一家公司,他们是当前的承包商。 给承包商一个他们要工作的公司。 在Firebase中构造数据的替代方法有哪些? 问题答案: 自我回答确实是对此进行建模的一种方法。它可能是在关系数据库中建模的最直接等效方法: 承办商

  • 问题内容: 我知道在Elasticsearch中,我们可以在文档之间建立子/父关系。 然后,在建立索引时,我可以传递父代ID,以便将子文档和父文档链接起来: 无论如何,在Elasticsearch中建立多对多关系的模型吗? 数据驻留在具有以下架构的MySQL数据库中: 当前这是我的映射(请原谅数组表示法,我在PHP中使用Elastica与我的Elasticsearch服务器通信): 这种方法的问题

  • 我有一个Firebase数据库。我有公司和承包商。一个承包商可以为多个公司工作,一个公司可以有多个承包商。这是一种简单的多对多关系。我希望能够回答有关公司和承包商的问题: 给定一家公司,谁是当前的承包商 给定一个承包商,他们为哪些公司工作 在firebase中构建数据的替代方案是什么?

  • 问题内容: 我正在尝试创建一个消息传递系统,其中消息的发送者和接收者可以是通用实体。对于发件人来说,这似乎很好,在该发件人中只有要引用的对象(GenericForeignKey),但我不知道如何为收件人进行处理(GenericManyToManyKey ??)。 下面是一个简化的示例。PersonClient和CompanyClient从Client继承属性,但具有其自己的特定详细信息。最后一行是

  • 用户表结构:用户 id、名称、用户名、密码、创建时间、更新时间 文章表结构:文章 id、标题、内容、创建时间、更新时间 关系表:文章\用户 id、文章id、用户id处于活动状态、创建时间、更新时间 标签 id、名称、用户id、创建时间、更新时间 透视表项目用户与标记的关系。表:文章\用户\标签 标签号,物品号,用户号 我想连接这些表,以便可以像这样或类似的格式访问 并且应该能够创建/更新smth,

  • 我还想知道如何定义每个模型上的关系--你是否需要或者是否可以只在用户上定义关系?