トランザクションの処理を終了させる方法

watanabe 258views 更新:2014年4月16日

トランザクション処理を開始するメソッドは

Database.beginTransaction(dataContext);

で呼び出せるが

Database.commit();やDatabase.rollback();

を行わない場合はトランザクションの処理が終了しないままとなってしまう。

そこでcommitやrollbackをかけずにトランザクション処理の終了のみを行う場合は

Transaction threadTransaction = Transaction.getThreadTransaction(); 
if (threadTransaction != null) { 
try {
 threadTransaction.commit(); 
} catch (IllegalStateException e) {
 logger.error(e.getMessage(), e); 
} catch (SQLException e) {
 logger.error(e.getMessage(), e); 
} catch (CayenneException e) {
 logger.error(e.getMessage(), e); 
} finally {
 Transaction.bindThreadTransaction(null);
}
}

を実行することで終了することが出来る。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません