私は別々に(arr[i]
)の各オブジェクトをマージする必要が次のシナリオ、EJBでトランザクションをコミットする方法は?
public void someEjbMethod1()
{
for (int i=0; i=10; i++)
{
em.merge(arr[i]);
em.flush();
}
}
を有します。上記のコードは関数の最後にすべてのarr[i]
インスタンスをコミットするためです。
私は次の操作を実行するために考えています:
public void someEjbMethod1()
{
for (int i=0; i=10; i++)
{
saveObj(arr[i]);
}
}
// should I use a transaction attribute here??
public void saveObj(SomeObject obj)
{
em.merge(arr[i]);
em.flush();
}
OC4Jで述べた内容とまったく同じでしたが、まだ動作しません。 –
「まだ動作しません」とはどういう意味ですか?呼び出しのたびにトランザクションの作成が失敗しますか?また、JTAコーディネーターのより詳細なデバッグを可能にすることも検討してください。新しいトランザクションが開始されているかどうかを判断することができます。 –
つまり、データベースは 'saveObj'の各終了時に更新されませんが、アプリケーションサーバーログでは、更新SQLクエリが出力されます –