当前位置: 首页 > 面试题库 >

@Transactional在类级别时如何使用只读

路扬
2023-03-14
问题内容

@Transactionalservice课堂上使用哪种DAO方法,我想知道如何在特定的服务方法上使用只读。
我是否需要额外的定义@Transactionalreadonly=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都不会触发。



 类似资料:
  • 问题内容: 我对Spring 3.2.3 @Transactional注解有疑问。我的服务类如下所示: 如果我调用persist()方法,所有方法都可以正常工作。但是,如果我在类级别将@Transactional注释掉- 事务将不会启动。谁能告诉我为什么Spring只能在methol级忽略@Transactional? 问题答案: 您不能从processDisclosureData()调用pers

  • 问题内容: 我在应用程序中使用log4j2。 我想要的是将要进行调试的所有内容都放入控制台,将要进行“信息”的所有内容都进入myapp.log,仅将“信息”的所有内容都进入“ myapp- audit.log”。 原因是,INFO主要由成功的数据修改组成(例如,“用户创建”,“用户更新”,“用户删除”等)。如果有效,则为数据修改的审核日志。 但是我不知道该怎么做。 如何仅获取“信息”以登录到“ m

  • 我正在尝试制作一个DnD字符生成器,部分原因是我需要一个可以通过其他方法编辑的统计列表,所以我试图在类级别添加它。我目前的代码是: 但是当我试图运行它时,我在每个“添加”行都有一个“预期标识符”错误。

  • 问题内容: 我刚刚开始从事Spring数据,Hibernate,MySQL,JPA项目。我切换到spring-data,以便不必担心手动创建查询。 我注意到当您使用spring-data时不需要使用of,因为我也尝试了没有注释的查询。 有特定的原因为什么我应该/不应该使用注释? 作品: 也可以: 提前致谢! 问题答案: 您实际上在问什么?注释或的用法。 根本不需要,因为您声明的接口将由Spring

  • 问题内容: 我正在开发一个需要使用记录器功能的应用程序。我已经了解了不同级别的记录器,这些记录器是: 严重(最高) 警告 信息 配置 精细 罚款 最好的 我无法理解每个日志记录级别的用法。 有人可以给我一个很好的例子,显示所有日志记录级别及其用法吗? 问题答案: 通常,您不需要所有这些级别,SEVERE,WARNING,INFO,FINE可能就足够了。我们正在使用Log4J(不是直接java.ut

  • 我已经使用SLF4j作为日志框架,由log4j支持。我的问题是,我正在寻找一种在运行时更改记录器日志记录级别的方法。 我知道slf4j不允许通过自己的API直接进行此操作,因此,我必须直接访问日志提供程序。就个人而言,我发现这是slf4j中的一个巨大缺陷。所以现在我的问题是,如何通过slf4j以编程方式确定我使用的是哪种提供者?使用slf4j的最大目的是让您变得与提供商无关-您可以轻松地在您喜欢的