The transaction attribute Mandatory requires the container to invoke a bean's method in a client's transaction context.
The transaction attribute Never requires that the enterprise bean method explicitly not be called within a transaction context.
If the transaction attribute is NotSupported, the transactional context of the calling client is not propagated to the enterprise bean.
If the transaction attribute is Required, the container ensures that the enterprise bean's method will always be invoked with a JTA transaction.
If the transaction attribute is RequiresNew, the container always creates a new transaction before invoking the enterprise bean method and commits the transaction when the method returns.
It the transaction attribute is Supports and the client is associated with a transaction context, the context is propagated to the enterprise bean method, similar to the way the container treats the Required case.