@Override protected void doBegin(final Object transaction, final TransactionDefinition definition) { JdbcTransactionObjectSupport txObject = (JdbcTransactionObjectSupport) transaction; try { super.doBegin(transaction, definition); } catch (TransactionException ex) { rollbackAfterFailedBegin(txObject); throw ex; } catch (Exception ex) { rollbackAfterFailedBegin(txObject); throw new CannotCreateTransactionException( "Could not open JPA EntityManager for transaction", ex); } }