code: public MithraTransaction startOrContinueTransaction(TransactionStyle style) throws MithraTransactionException
      {
          MithraTransaction result;
          MithraTransaction parent = this.getCurrentTransaction();
          if (parent != null)
          {
              result = new MithraNestedTransaction(parent);
          }
          else
          {
              Transaction jtaTx;
              try
              {
                  if (this.getJtaTransactionManager().getStatus() != Status.STATUS_ACTIVE)
                  {
                      this.getJtaTransactionManager().setTransactionTimeout(style.getTimeout());
                      this.getJtaTransactionManager().begin();
                  }
                  jtaTx = this.getJtaTransactionManager().getTransaction();
                  result = this.createMithraRootTransaction(jtaTx, style.getTimeout()*1000);
              }
              catch (NotSupportedException e)
              {
                  throw new MithraTransactionException("JTA exception", e);
              }
              catch (SystemException e)
              {
                  throw new MithraTransactionException("JTA exception", e);
              }
              catch (RollbackException e)
              {
                  throw new MithraTransactionException("JTA exception", e);
              }
          }
          this.setThreadTransaction(result);
          return result;
      }
docs: Behaves like startOrContinueTransaction(), but with a custom transaction style
  @param style defines the parameters for this transaction.
  @return
  @throws MithraTransactionException