来自無處不在
原文地址:http://blog.chaoskey.com/2010/04/29/201004291034
我个人认为,这是GAE/J的JDO实现中最有问题的一部分,我查看了 GAE/Java 的官方论坛,很多人对此提出了疑问,但是没有很好的解决方案。 相关的GAE/J文档所谓的范例根本不全,没有一个完全可运行的例子,甚至连最简单的例子都没有。 还好,功夫不负有心人,我终于找到了一个解决方案,现在分享出来。
按照GAE/J 的文档,它所谓的关系包括: Owned Relationships 和 Unowned Relationships 两类。 本文说是前者,至于后者根本不是一般意思的“关系”,因为他的关系完全要由程序逻辑来保证。
这里还是继续以GAE/J 文档中的例子的完善来作为这里例子:(相关说明见红色粗体的标注)
1) Employee 1->* ContactInfo ( One-to-Many)
2) ContactInfo 1->1 Employee ( One-to-One)
3) 使用范例:
4)运行结果
最后的运行结果表明: Employee(92) ,ContactInfo(93) ,ContactInfo(94) 属于同一个实体组系,并且 Employee(92) 是 ContactInfo(93) 和 ContactInfo(94)的公共父实体。 应该存储在同一个节点上(Google的存储节点)。