Spring @Transactional方法和类

时间:2017-02-01 10:20:29

标签: java spring transactions

我知道类中的@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);
  }

2 个答案:

答案 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方法,这个替换类注释