我必须使用低级API 才能在Google App Engine中保留Value类型的实体。我一直在寻找,我只是以这种方式找到了一个例子:
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Key k = KeyFactory.createKey(Value.class.getSimpleName(), id);
Entity entity = new Entity(k);
entity.setProperty("column1", value.getColumn1());
entity.setProperty("column2", value.getColumn2());
datastore.put(entity);
我的问题是我事先并不知道id(标识符的值),因为我需要将它作为序列生成。这将是在低级API中执行此操作的方式,因为它在JDO中完成:
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
如何检索低级别的ID或将其配置为序列生成?
感谢。
答案 0 :(得分:1)
Entity
类有许多构造函数。使用带有单个字符串的那个 - 类型名称 - 当您将其存储在数据存储区中时,将为您生成ID。
答案 1 :(得分:0)
也许尝试使用“allocateIds”分配一系列ID来使用?这将为您提供一组要使用的保留键。我怀疑你是否能够获得严格的序列,例如在关系数据库中,但至少你可以获得有保证的唯一和可用的密钥。
请参阅DatastoreService的文档:
另外,如需进一步指导,您可以查看Datanucleus如何使用此API: