特别是Objectify团队,
我通过这种代码模式持久保存我的对象
Entity filled = ofy().save().toEntity(myPojo);
filled.setUnindexedProperty( "myStuff", "computedSpecialValue" );
datastore.persist(filled);
回读我的对象,我注意到它们是从缓存中获取的,因为Objectify没有被告知它应该从缓存中驱逐更新的实体。
我喜欢Objectify缓存功能,因为它节省了我从memcache中获取数据并为每次读取重新构建对象的时间,所以我希望我的对象被缓存,但我希望能够驱逐它们。
此讨论称2013年中期没有解决方案,https://groups.google.com/forum/#!msg/objectify-appengine/n3FJjnYVVsk/6Xp99zReOKQJ
如果仍然如此,我希望有一个类似
的APIofy().save().entity(myPojo).evict();
顺便说一句,我认为如果
,API会更加一致Entity filled = ofy().save().toEntity(myPojo);
被
取代Entity filled = ofy().save().entity(myPojo).toEntity();
当然,这个问题有一个代价高昂的解决方法:
答案 0 :(得分:1)
虽然没有用于驱逐缓存条目的正式API,但这并不难:
MemcacheServiceFactory
.getMemcacheService(ObjectifyFactory.MEMCACHE_NAMESPACE)
.delete(key.toWebSafeString());