取消引用指向数据存储区中同一对象的两个ReferenceProperty

时间:2011-03-28 13:11:01

标签: google-app-engine google-cloud-datastore

我正在阅读关于热切加载的this StackOverflow question,这让我this blog post了解了GAE上的有效解除引用。

是否正确,如果我取消引用指向数据存储区中同一对象的两个ReferenceProperties,框架不会维护任何类型的身份映射并执行两个单独的get请求?返回的对象也是不同的实例,其中一个实际上没有反映出来。

这不是不理想吗?我来自SQLAlchemy背景,在那里我发现会话模式非常直观。

1 个答案:

答案 0 :(得分:1)

这是对的。 Guido的新NDB项目确实执行了此映射,但当前的db框架没有。这是你期望的原因:如果代码的两个不同部分获取并修改同一个实体,它可能会产生不必要的副作用。直观的期望是,如果你拿走了这个物体,它就属于你了,除非你想要,否则没有别的东西可以改变它。

如果您尝试同时取消引用一批实体,可以先将键列表转换为一组,以消除重复的提取。