@java.lang.annotation.Target({ElementType.METHOD, ElementType.TYPE}) @java.lang.annotation.Retention(RetentionPolicy.RUNTIME) @java.lang.annotation.Inherited @java.lang.annotation.Documented @org.codehaus.groovy.transform.GroovyASTTransformationClass("org.grails.datastore.gorm.transform.OrderedGormTransformation") @GormASTTransformationClass("org.grails.datastore.gorm.transactions.transform.TransactionalTransform") public @interface ReadOnly
Define a read-only transaction
Type | Name and Description |
---|---|
java.lang.String |
connection The connection to use by default
|
java.lang.Class<? extends ConnectionSourcesProvider>[] |
datastore If you are using multiple GORM implementations and wish to create a transaction for a specific implementation then use this. |
boolean |
inheritRollbackOnly In Spring, when there are nested transaction calls, the execution of the outermost callback will throw UnexpectedRollbackException if TransactionStatus.setRollbackOnly() was called in a nested transaction callback. |
org.springframework.transaction.annotation.Isolation |
isolation The transaction isolation level. |
java.lang.Class<? extends java.lang.Throwable>[] |
noRollbackFor Defines zero (0) or more exception java.lang.Class, which must be a subclass of java.lang.Throwable, indicating which exception types must not cause a transaction rollback. |
java.lang.String[] |
noRollbackForClassName Defines zero (0) or more exception names (for exceptions which must be a subclass of java.lang.Throwable) indicating which exception types must not cause a transaction rollback. |
org.springframework.transaction.annotation.Propagation |
propagation The transaction propagation type. |
java.lang.Class<? extends java.lang.Throwable>[] |
rollbackFor Defines zero (0) or more exception java.lang.Class, which must be a subclass of java.lang.Throwable, indicating which exception types must cause a transaction rollback. |
java.lang.String[] |
rollbackForClassName Defines zero (0) or more exception names (for exceptions which must be a subclass of java.lang.Throwable), indicating which exception types must cause a transaction rollback. |
int |
timeout The timeout for this transaction. |
java.lang.String |
value A qualifier value for the specified transaction. |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
The connection to use by default
If you are using multiple GORM implementations and wish to create a transaction for a specific implementation then use this. For example @Transactional(forDatastore=HibernateDatastore)
In Spring, when there are nested transaction calls, the execution of the outermost callback will throw UnexpectedRollbackException if TransactionStatus.setRollbackOnly() was called in a nested transaction callback. This feature will make the setRollbackOnly state get inherited to parent level transaction template calls and therefore prevent UnexpectedRollbackException. The default value is true.
The transaction isolation level. Defaults to org.springframework.transaction.annotation.Isolation#DEFAULT.
Defines zero (0) or more exception java.lang.Class, which must be a subclass of java.lang.Throwable, indicating which exception types must not cause a transaction rollback.
This is the preferred way to construct a rollback rule, matching the exception class and subclasses.
Similar to org.springframework.transaction.interceptor.NoRollbackRuleAttribute#NoRollbackRuleAttribute(Class clazz)
Defines zero (0) or more exception names (for exceptions which must be a subclass of java.lang.Throwable) indicating which exception types must not cause a transaction rollback.
See the description of rollbackForClassName() for more info on how the specified names are treated.
Similar to org.springframework.transaction.interceptor.NoRollbackRuleAttribute#NoRollbackRuleAttribute(String exceptionName)
The transaction propagation type. Defaults to org.springframework.transaction.annotation.Propagation#REQUIRED.
Defines zero (0) or more exception java.lang.Class, which must be a subclass of java.lang.Throwable, indicating which exception types must cause a transaction rollback.
This is the preferred way to construct a rollback rule, matching the exception class and subclasses.
Similar to org.springframework.transaction.interceptor.RollbackRuleAttribute#RollbackRuleAttribute(Class clazz)
Defines zero (0) or more exception names (for exceptions which must be a subclass of java.lang.Throwable), indicating which exception types must cause a transaction rollback.
This can be a substring, with no wildcard support at present. A value of "ServletException" would match javax.servlet.ServletException and subclasses, for example.
NB: Consider carefully how specific the pattern is, and whether to include package information (which isn't mandatory). For example, "Exception" will match nearly anything, and will probably hide other rules. "java.lang.Exception" would be correct if "Exception" was meant to define a rule for all checked exceptions. With more unusual java.lang.Exception names such as "BaseBusinessException" there is no need to use a FQN.
Similar to org.springframework.transaction.interceptor.RollbackRuleAttribute#RollbackRuleAttribute(String exceptionName)
The timeout for this transaction. Defaults to the default timeout of the underlying transaction system.
A qualifier value for the specified transaction.
May be used to determine the target transaction manager, matching the qualifier value (or the bean name) of a specific org.springframework.transaction.PlatformTransactionManager bean definition.