【问题标题】:How to retrieve entity raw datastore Key through Objectify?如何通过 Objectify 检索实体原始数据存储区密钥?
【发布时间】: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


【解决方案1】:

Objectify 的Key<?> 有一个方法getRaw(),它将为您提供低级Key。检查 javadocs。

如果您使用的是最新的 4.0 代码,请尝试Key.create(yourEntityPOJO).getRaw()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多