トランザクション処理を開始するメソッドは
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); } }
を実行することで終了することが出来る。