@Transactional在类级别时如何使用只读
我@Transactional
在service
课堂上使用哪种DAO
方法,我想知道如何在特定的服务方法上使用只读。
我是否需要额外的定义@Transactional
与readonly=true
此服务的方法,或有另一种方式?
回答:
从Spring API 这里。
在评估方法的事务设置时,最派生的位置优先。
在下面的示例中,DefaultFooService类在类级别使用只读事务的设置进行注释,但是同一类中updateFoo(Foo)方法上的@Transactional注释优先于定义的事务设置在课堂上。
@Transactional(readOnly = true)public class DefaultFooService implements FooService {
public Foo getFoo(String fooName) {
// do something
}
// these settings have precedence for this method
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void updateFoo(Foo foo) {
// do something
}
}
@Transactional批注是元数据,用于指定接口,类或方法必须具有事务语义;
例如,“在调用此方法时启动一个全新的只读事务,暂停任何现有事务”。默认的@Transactional设置如下:
传播设置为PROPAGATION_REQUIRED。
隔离级别为ISOLATION_DEFAULT。
事务是读/写。
事务超时默认为基础事务系统的默认超时,如果不支持超时,则默认为无。
任何RuntimeException都会触发回滚,而任何选中的Exception都不会触发。
以上是 @Transactional在类级别时如何使用只读 的全部内容, 来源链接: utcz.com/qa/415000.html