【问题标题】:Spring @Transactional method and classSpring @Transactional 方法和类
【发布时间】:2017-06-18 01:06:30
【问题描述】:

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

【问题讨论】:

    标签: java spring transactions


    【解决方案1】:

    两个示例的工作方式相同

    @Transactional 对所有方法上的类都设置了@Transactional,但是如果你把@Transactional o 方法,这个替换了类注解

    【讨论】:

      【解决方案2】:

      类级别的@Transactional注解将应用于类中的每个方法。

      但是,当使用 @Transactional 注释方法时(例如 getByApplicant(B b)),这将优先于在类级别定义的事务设置。

      更多信息: http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/transaction.html

      【讨论】:

        猜你喜欢
        • 2015-02-23
        • 2015-05-15
        • 2016-10-10
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        • 2018-02-26
        • 1970-01-01
        • 2011-03-31
        相关资源
        最近更新 更多