0

これはよくある質問かもしれませんが、解決策はまだはっきりしていません。私は GAE (データストア) を使用して、Objectify とやり取りしています。並行性について質問があります。

オブジェクトがあるとしましょう。それを blarkar と呼びましょう。ユーザー「A」は、データベースから blarkar をロードして変更し、変更したバージョンをデータベースに保存しようとするトランザクションを開始します。

トランザクションではすべてが発生するか、何も発生しないことを理解していますが、混乱しているのは、blarkar オブジェクトがチェックアウト済みとしてマークされているかどうか、およびユーザー「A」によって開始されたトランザクション中に上書きできるかどうかです。進行中。

たとえば、別のユーザー (彼女を「B」と呼びます) が新しいバージョンの blarkar をデータベースに保存しようとすると、ユーザー「A」がトランザクションを開始した後、トランザクションを終了する前に、彼女の変更が上書きされます。ユーザーAの取引終了?

繰り返しますが、私は GAE Datastore を使用しており、それを Objectify で操作しています。ただし、Objectify は Datastore のトランザクション API を実装しているだけのようです。

どうもありがとう。

4

1 に答える 1

1

これを読んでください: https://code.google.com/p/objectify-appengine/wiki/Concepts#Transactions

Optimistic Concurrency をグーグルで検索することもできます。

于 2013-09-04T15:24:44.723 に答える