我有一些个人数据结构与"标准字段"混合在一起。我想避免在简单字段(使用数据存储本机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代码来破解它?
感谢您的回答
答案 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);