JTA UserTransactionでトランザクションキャッシュ(XAResource)としてEHCacheを使用し始めましたが、少なくとも私の心の中で少し奇妙なものが表示されています。私の「表示」が間違っているかどうかを理解したいと思います。または私の理解。
次のコードはfalse
ut = getUserTransaction();
ut.begin();
MyClass a = myChache.get(key).getValue();
a.changeSomeInnerReferrence(newRefference);
ut.commit();
ut = getUserTransaction();
ut.begin();
MyClass b = myChache.get(key).getValue();
ut.commit();
return a.equals(b);
タイプのMyClass
メンバーがあり、MyOtherClass
それchangeSomeInnerReferrence
が参照を現在の値からパラメーターに変更するとします。また、equalsはそのメンバーを考慮に入れていると仮定します。上記のコードの前
に追加しない限り、が返されることに気づきました。 myChache.put(key,a)
ut.commit()
false
何故ですか?これはキャッシュの一般的な動作ですか?commitが呼び出されると、内部参照の変更がキャッシュに伝播すると思います。
ありがとう、
イッタイ