private static class Ejb3TransactionAnnotationParser.Ejb3TransactionAttribute extends DefaultTransactionAttribute
PREFIX_ISOLATION, PREFIX_PROPAGATION, PREFIX_TIMEOUT, READ_ONLY_MARKER
ISOLATION_DEFAULT, ISOLATION_READ_COMMITTED, ISOLATION_READ_UNCOMMITTED, ISOLATION_REPEATABLE_READ, ISOLATION_SERIALIZABLE, PROPAGATION_MANDATORY, PROPAGATION_NESTED, PROPAGATION_NEVER, PROPAGATION_NOT_SUPPORTED, PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_SUPPORTS, TIMEOUT_DEFAULT
Constructor and Description |
---|
Ejb3TransactionAttribute(TransactionAttributeType type) |
Modifier and Type | Method and Description |
---|---|
boolean |
rollbackOn(java.lang.Throwable ex)
The default behavior is as with EJB: rollback on unchecked exception
(
RuntimeException ), assuming an unexpected outcome outside of any
business rules. |
getAttributeDescription, getDescriptor, getQualifier, setDescriptor, setQualifier
equals, getDefinitionDescription, getIsolationLevel, getName, getPropagationBehavior, getTimeout, hashCode, isReadOnly, setIsolationLevel, setIsolationLevelName, setName, setPropagationBehavior, setPropagationBehaviorName, setReadOnly, setTimeout, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getIsolationLevel, getName, getPropagationBehavior, getTimeout, isReadOnly
public Ejb3TransactionAttribute(TransactionAttributeType type)
public boolean rollbackOn(java.lang.Throwable ex)
DefaultTransactionAttribute
RuntimeException
), assuming an unexpected outcome outside of any
business rules. Additionally, we also attempt to rollback on Error
which
is clearly an unexpected outcome as well. By contrast, a checked exception is
considered a business exception and therefore a regular expected outcome of the
transactional business method, i.e. a kind of alternative return value which
still allows for regular completion of resource operations.
This is largely consistent with TransactionTemplate's default behavior, except that TransactionTemplate also rolls back on undeclared checked exceptions (a corner case). For declarative transactions, we expect checked exceptions to be intentionally declared as business exceptions, leading to a commit by default.
rollbackOn
in interface TransactionAttribute
rollbackOn
in class DefaultTransactionAttribute
ex
- the exception to evaluateTransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)