这可能是一个常见的问题,但我仍然不清楚解决方案。我正在使用GAE(数据存储区),与Objectify进行交互。我有一个关于并发的问题。
假设我们有一个对象,我们称之为blarkar。用户'A'启动一个事务,他将尝试从数据库加载blarkar,修改它,并将修改后的版本保存回数据库。
我理解在事务中要么一切都发生了,要么什么也没发生,但我感到困惑的是blarkar对象是否被标记为已检出,以及是否可以或者不能覆盖事务,由用户'A启动', 正在处理。
例如,如果另一个用户,我们称她为'B',尝试将新版本的blarkar保存到数据库中,在用户'A'开始他的交易之后但在他结束之前,她的变化很好当用户'A的交易结束时被覆盖?
同样,我正在使用GAE数据存储区,并与Objectify进行交互。但是,Objectify似乎只是实现了Datastore的事务API。
非常感谢。
答案 0 :(得分:1)
阅读本文:https://code.google.com/p/objectify-appengine/wiki/Concepts#Transactions
您还可以google for Optimistic Concurrency。