1
トランザクションがコードに反映されて正常にロールバックされます。トランザクションで実行された操作はデータベースに反映されず、 - コミットされたtxのアクティブな状態。つまり、PMFのtx(トランザクション)およびUndoのDynaPMFロールバックを使用してレコードが削除された場合、操作は機能しません。 GAEでJdoを使用するトランザクションでロールバックが機能しません。コードは正常に実行されていますが、
ここPMFは、DynaPMFは、二つの異なるデータベースの2つの異なるPersistanceMangerFactoryを参照if (isTransactionLocal || (PMF.getTransactionCounter() > 0 || DynaPMF.getTransactionCounter() > 0)) {
//tx.rollback();
if(PMF.getPerThreadTransaction()!=null){
tx=PMF.getPerThreadTransaction();
System.err.println(tx.hashCode()+"transaction thread is Alive =>"+tx.isActive());
if(tx.isActive()){
tx.rollback();
System.err.println("rollback for tx = "+tx.hashCode()+" done .");
}
}
if(DynaPMF.getPerThreadTransaction()!=null){
tx=DynaPMF.getPerThreadTransaction();
System.err.println(tx.hashCode()+"transaction thread is Alive =>"+tx.isActive());
if(tx.isActive()){
tx.rollback();
System.err.println("rollback for tx = "+tx.hashCode()+" done .");
}
}
PMF.setPerThreadTransaction(null);
DynaPMF.setPerThreadTransaction(null);
出力:
1861140113transaction thread is Alive =>true
rollback for tx = 1861140113 done .
336180090transaction thread is Alive =>true
rollback for tx = 336180090 done .
が正常発生にロールバックコードで示すが、データベースに反映されていません。
[もっと速い回答を得るために、どのような状況で「緊急」または他の同様のフレーズを追加することができますか?](https://meta.stackoverflow.com/q/326569) - 概要は次のとおりです。これはボランティアに対処する理想的な方法ではなく、おそらく回答を得ることには非生産的であるということです。これをあなたの質問に追加しないでください。 – halfer