在objectify保存之前是否可以获取Entity对象(并填充其他一些数据)

时间:2014-06-25 17:32:22

标签: objectify

我有一些个人数据结构与"标准字段"混合在一起。我想避免在简单字段(使用数据存储本机API)上进行手动操作:

toPersist.setProperty("field1", value1);
toPersist.setUnindexedProperty("field2", value2);

但我仍然希望获得预先填充的实体实例toPersist,以便我可以自己添加自己的@Ignore字段

例如:

Entity filled = OfyService.ofy().save().entity(this).fill();
filled.setProperty("mySpecialField", jsonValue);
//...
// I want to save my entities alone
datastore.put( filled );

反之,我希望获得代表load()来电中每个条目的Entity对象。

这可能吗?或者我是否必须深入Objectify代码来破解它?

感谢您的回答

1 个答案:

答案 0 :(得分:0)

我没有完全按照您的问题,但我非常确定您要查找的是@OnLoad@OnSave注释。您可以将它们添加到实体类中的方法,并且这些方法将在加载实体之后或者在保存实体之前分别调用。他们的文档是here

修改
在您的评论(下面)之后,我现在明白您要完成的任务。是的,Objectify支持这一点(尽管我自己从未尝试过)。您想使用Saver.toEntity()Loader.fromEntity()方法。看来你可以像这样使用它们:

// Use Objectify to convert a POJO into an Entity
Entity filled = ofy().save().toEntity(myPojo);

// Use Objectify to convert an Entity into a POJO
Object pojoCopy = ofy().load().fromEntity(filled);