我正在使用Spring Boot
和Spring Data JPA
。
有以下课程:
import org.springframework.transaction.annotation.Transactional;
@Transactional(propagation = Propagation.REQUIRED)
public class Foo{
public void bar(){}
}
bar()
和任何其他成员方法也是交易性的吗?
我还有第二个问题。在许多教程中,人们倾向于这样做:
import org.springframework.transaction.annotation.Transactional;
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public class Foo{
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void bar(){}
}
为什么呢?使用readOnly
true
和false
是否属于安全问题?
答案 0 :(得分:13)
方法级别的注释完全覆盖了类型级别的注释。
类级别的@Transactional
注释将应用于类中的每个方法。
但是,当使用@Transactional
注释方法时,这将优先于在类级别定义的事务设置。