Google app engine AppEngine和JDO:获取无主关系中的对象

Google app engine AppEngine和JDO:获取无主关系中的对象,google-app-engine,jdo,Google App Engine,Jdo,无主一对多和多对多关系是使用键集或键列表定义的。假设我有一个包含文章标签键集的文章对象。那么,如何获取标签本身呢?与钥匙匹配的物体?如何迭代它们?当然,我可以迭代键并分别获取对象,但这是唯一的方法吗?我到处都想找到答案,但没有成功。文档详细描述了无主关系的定义,但没有对其进行查询…你的意思是你拥有谷歌最初称之为“无主关系”的东西?(其中有一个集合)。可悲的是,这根本不是一种关系,因为没有相关的对象。有了v2.x的插件,你可以有一个(1-1的例子,但是你同样可以有集),所有的东西看起来都应该如此。

无主一对多和多对多关系是使用键集或键列表定义的。假设我有一个包含文章标签键集的文章对象。那么,如何获取标签本身呢?与钥匙匹配的物体?如何迭代它们?当然,我可以迭代键并分别获取对象,但这是唯一的方法吗?我到处都想找到答案,但没有成功。文档详细描述了无主关系的定义,但没有对其进行查询…

你的意思是你拥有谷歌最初称之为“无主关系”的东西?(其中有一个
集合
)。可悲的是,这根本不是一种关系,因为没有相关的对象。有了v2.x的插件,你可以有一个(1-1的例子,但是你同样可以有
),所有的东西看起来都应该如此。我强烈建议您使用它(键存储在父对象中,因此只需进行一次调用即可获取相关对象集)。

因此,在v2.x中,键存储在父对象中,同时使用“拥有”和“未拥有”关系的集合,我通过向子对象添加“父对象”属性和“映射对象”将“未拥有”变为“拥有”父对象的注释?在这两种情况下,查询是相同的吗?你建议我使用v2.x版本的插件,它目前被标记为实验版,你认为没有什么好担心的吗?我仍然有点困惑,为什么文档中描述了这种创建无主关系(Set)的技术,而实际上它是无用的……GAE JPA v2(由我编写)通过了比他们的v1更多的测试,遵循TDD,并且在其开发中具有隐含的稳定性(谷歌坚持把事情贴上实验性的标签,最好问问他们为什么)。唯一的问题是你在哪里有现有的数据…因为数据存储格式在v2开发开始时发生了变化(所以你必须从v1迁移任何数据-见他们插件的Wiki)。旧的GAE方式“无主”应该将密钥也存储在父级中(不是我使用的),只是新的方式让您可以立即访问相关对象。这是一个非常古老和封闭的方法…但我有一个后续问题。我升级到v2插件,并尝试使用方便的自然语法实现无主关系,但问题是…删除引用也会删除原始对象。有关更多信息,请参阅。因此此时此刻,我必须使用密钥来实现关系。你看起来像一个消息灵通的家伙……有什么想法吗?我想有人建议你在GAE JDO/JPA问题跟踪程序中报告问题,如果你有问题,这样他们就可以查看问题……用一个测试用例来演示它。他的建议应该被遵循。Howell我这样做了,但没有回应到目前为止。我显然是唯一一个有这个问题的人。另一方面,我还没有遇到任何人说这对他有用。所以可能没有人使用JDO3来实现关系。没关系,谢谢你。现在我将使用键来实现关系,它工作正常,没有太多额外的工作。