【发布时间】:2013-12-07 10:11:10
【问题描述】:
之前,我以这种方式创建了我的实体:
Entity entity = new Entity("Person", personName);。这意味着该实体的 ID/名称将是 personName。
现在,我决定使用Objectify。所以我创建了一个Person.java 类来表示这个实体。
我的问题:如何使用 Objectify 检索实体的密钥(com.google.appengine.api.datastore.Key 或原始字符串表示形式)?以前,我可以简单地做一个personEntity.getKey()。但是在使用 Objectify 包装低级数据存储 API 之后,我仍在尝试弄清楚如何使用它来做到这一点。
【问题讨论】:
-
你为什么想要一个原始的 DS
Key? Objectify 的整个想法是隐藏 Datastore,以便您可以处理具有例如的 POJO。Long id。与使用c.g.appengine.api.datastore包中的类相比,也使测试更容易。 -
Objectify 是在项目后期实现的,在此之前,我们只是使用 Low Level API。 (一个糟糕的设计决定)所以有些方法依赖于原始 DS
Key。 -
我使用 Ofy 而不是低级 API,但仍然发现自己经常使用原始 DS Key 类型。 ofy 的 Key 的类型安全是以灵活性为代价的。是的,我大部分时间都使用 long id 或 String name,但也使用 raw Key。
标签: java entity-framework google-app-engine google-cloud-datastore objectify