我知道类中的@Transactional注释会影响所有方法,方法中的@Transactional注释只影响此方法并覆盖类注释。
但是,这段代码有意义吗?(课堂上没有更多方法)
@Service
@Transactional
public class Service extends AbstractCrudService<A,Repository> {
@Transactional(readOnly=true)
public Optional<A> getByApplicant(B b) {
return repository.findByB(b);
}
如果仅在方法中放置@Transactional注释是否相同?
@Service
public class Service extends AbstractCrudService<A,Repository> {
@Transactional(readOnly=true)
public Optional<A> getByApplicant(B b) {
return repository.findByB(b);
}
答案 0 :(得分:0)
类级别的@Transactional注释将应用于类中的每个方法。
但是,当使用@Transactional注释方法(例如,getByApplicant(B b))时,这将优先于在类级别定义的事务设置。
更多信息: http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/transaction.html
答案 1 :(得分:0)
两个示例都以相同的方式工作
@Transactional在所有使用@Transactional的方法上设置的类,但是如果你把@Transactional方法,这个替换类注释