首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Objectify更新实体

使用Objectify更新实体
EN

Stack Overflow用户
提问于 2012-06-08 02:32:08
回答 1查看 911关注 0票数 0

我要面对这样的场景:我有三个实体(EntA、EntB和EntC),EntA和EntB都有Key< EntC>参数。此外,EntC有一个List< String>参数,它将EntA和EntB的键作为字符串保存。

为了获得任何实体的键,我首先必须持久化它们(id字段是自动生成的)。所以我要这么做:

  1. 创建并保存EntC,这将创建EntA和EntB所需的Key< EntC>值。
  2. 使用Key< EntC>创建EntA和EntB并保存它们。
  3. 通过向相应的列表中添加Key< EntC和
  4. 来更新EntC。我发现实体没有在DS中更新,而是重写了。因此,我首先获取EntC,获取它的id,用于创建一个新的EntC实体,其中包含Key< EntA>和Key< EntB>。最后,删除原始EntC并保存新的EntC.

我想知道是否有更好的方法来解决这个问题。另外,是否有可能在删除原始EntC实体之后,在保存新的EntC实体之前,另一个实体获得它的id?

EN

回答 1

Stack Overflow用户

发布于 2012-06-08 02:50:43

预先分配id:

例如,与父母一起做:

代码语言:javascript
复制
Key<YourEntity> k=  dao.fact().allocateId(parentObj, YourEntity.class);
(obviously dao extends DAOBase, I think you know that from using objectify)


 allocateId(java.lang.Class<T> clazz) 
       Allocates a single id from the allocator for the specified kind.


 allocateId(java.lang.Object parentKeyOrEntity, java.lang.Class<T> clazz) 
      Allocates a single id from the allocator for the specified kind.

http://objectify-appengine.googlecode.com/svn/trunk/javadoc/com/googlecode/objectify/ObjectifyFactory.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10942377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档