Spring 静态事务属性是否传播到子类?
我在grails中有一个抽象服务类,用于设置事务属性 大概是这样的:Spring 静态事务属性是否传播到子类?,spring,grails,Spring,Grails,我在grails中有一个抽象服务类,用于设置事务属性 大概是这样的: abstract class AbstractService { static transactional = false } class MyService extends AbstractService { // methods } 仅通过扩展AbstractService中的MyService中的方法是否也是事务性的错误?简言之,是的,但只要您不定义 import grails.transacti
abstract class AbstractService {
static transactional = false
}
class MyService extends AbstractService {
// methods
}
仅通过扩展
AbstractService
中的MyService
中的方法是否也是事务性的错误?简言之,是的,但只要您不定义
import grails.transaction.Transactional
import org.springframework.transaction.interceptor.TransactionAspectSupport
class TestingService extends TestService {
//DO NOT ENABLE THIS OTHERWISE IT IS TRANSACTIONAL
//static transactional = true
def doIt() {
def aa = TransactionAspectSupport?.currentTransactionInfo()
return aa
}
@Transactional
def doIt2() {
def aa = TransactionAspectSupport?.currentTransactionInfo()
return aa
}
}
因此,如果重写静态事务,那么它将变为事务。如果您坚持在扩展抽象类中使用静态声明,现在即使您定义了@Transactional注释。结果将为空。对于下面的测试
如果事务不受支持,aa将返回null,如果是,您将看到类似于
传播\u REQUIRED,隔离\u DEFAULT
的内容,简而言之,是的,但只要您不定义
import grails.transaction.Transactional
import org.springframework.transaction.interceptor.TransactionAspectSupport
class TestingService extends TestService {
//DO NOT ENABLE THIS OTHERWISE IT IS TRANSACTIONAL
//static transactional = true
def doIt() {
def aa = TransactionAspectSupport?.currentTransactionInfo()
return aa
}
@Transactional
def doIt2() {
def aa = TransactionAspectSupport?.currentTransactionInfo()
return aa
}
}
因此,如果重写静态事务,那么它将变为事务。如果您坚持在扩展抽象类中使用静态声明,现在即使您定义了@Transactional注释。结果将为空。对于下面的测试
如果事务不受支持,aa将返回null,如果是,您将看到类似于
PROPAGATION\u REQUIRED,ISOLATION\u DEFAULT
的内容。我尝试使用TransactionSpectSupport?.currentTransactionInfo()
查看我是否在事务中,但它总是返回null。甚至在带有transaction的块中。我尝试使用TransactionSpectSupport?.currentTransactionInfo()
查看我是否在事务中,但它总是返回null。甚至在带有事务的块中。