Google App Engine/JDO:有会话缓存吗?
问题描述:
由于无法使用Google App Engine数据存储库连接表,因此我循环查看实体列表,并使用外键值逐个查找相关实体。Google App Engine/JDO:有会话缓存吗?
for (Employee staff: staffList){
Employee manager = pm.getObjectById(Employee.class, staff.getManagerId());
}
有,我也将需要同样引用的实体超过一次很好的机会,我不想去两次数据存储在同一个实体。
是否有某种会话缓存,我可以启用以消除重复的查找,还是我必须滚动自己的?
答
JDO规范不强制要求一个PersistenceManager中实例的高速缓存,根据datanculeus,谁与App Engine的JDO功能提供了帮助:
link to datanucleus cache page
但是,我知道,有顷仍然有一些事情失踪从AppEngine上实现,这里提到:
app engine unsupported features
的好消息是,缓存似乎并不在此列。坏消息是,我无法确定是否实施了1级缓存。尽管如此,测试应该不会那么难 - 让你的代码获得100个不同的实体,然后让它获得100次相同的实体。
我会试试看。可能甚至不需要计时,因为Google会为每个API调用计费,因此您可以实际查看页面在配额摘要中执行的呼叫次数。 – Thilo 2009-08-27 22:40:26
辉煌!让我们知道它是如何解决的,所以你可以拯救下一个家伙一些麻烦! – 2009-08-28 02:02:24
由于该部分位于DataNucleus“核心”jar中,所以实现了L1和L2缓存。默认情况下,L2缓存未打开 – DataNucleus 2009-08-28 06:01:01