JDO app引擎:复合键

时间:2012-01-25 11:56:33

标签: google-app-engine jdo

这是为其定义复合键的正确方法吗? 一个班级:

@PersistenceCapable
class Item {
  @PrimaryKey
  long id;
  @PrimaryKey
  String sellerID;
  // ... other fields follow
}

因为我希望对(id,sellerID)是唯一的,而不仅仅是id。

因此,在app引擎数据存储区中,我需要一个包含两者的实体 字段以某种方式变成一个键(例如用短划线分隔它们 连接他们)但我不知道如何去指导 应用引擎通过JDO或甚至通过低级API来实现。

1 个答案:

答案 0 :(得分:4)

这里最简单的方法是使用KeyFactory并使用您每次生成的单个密钥:

http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/KeyFactory.Builder.html

创建一个String Key并连接这两个字段。创建两个@PrimaryKey注释将不起作用 - 将App Engine视为尽可能靠近键值存储。我非常喜欢Jeff Schnitzer关于如何将数据存储区视为HashMap / Dictionary的解释:

http://code.google.com/p/objectify-appengine/wiki/Concepts