4Manuals

  • PDF Cloud HOME

在不与数据库对话的方法中使用Spring的@Transactional注释是否有意义? Download

    春季启动-Couchbase AbstractCouchbaseConfiguration-如何避免覆盖不必要的方法 Spring MVC @ModelAttribute未填充AJAX发布请求 Spring Singleton更新集 在PCF上部署SOAP服务时进行端点配置 带有mongodb驱动程序3.8.2的Springboot 1.5.7 在测试中使用ConfigurationProperties 从Springboot到Postgres的间歇性连接问题 无法从Spring Boot的属性文件中加载密钥,@ Autowired为null 如何使用Spring Boot将HL7格式转换为json格式并发布到activemq的不同主题? 我需要正确的方法将模板文件放置在微服务中

我试图了解一个涉及spring的声明式事务性注释的项目。该函数的主体不进行任何JDBC调用或调用JPA存储库方法。它所做的只是调用一些第三方API并转换其结果,甚至没有将响应保存在数据库中。因此根本没有数据库交互。

我的问题是,在此方法上使用@Transactional注释是否值得?因为根据我的理解,@ Transactional仅有助于维护数据库的一致性。

1 个答案:

答案 0 :(得分:7)

@Transactional注释定义了单个数据库事务的范围-它所做的只是开始事务并提交或回滚。它允许管理事务声明方式,而不是每次都以编程方式进行。

它看起来像这样:

UserTransaction utx = entityManager.getTransaction(); 

try { 
    utx.begin(); 
    // your method invocation here
    utx.commit(); 
} catch(RuntimeException ex) { 
    utx.rollback(); 
    throw ex; 
}

在没有数据库调用的情况下,通过建立方法@Transactional只会使它的性能变差,因为在不必要时必须执行多余的步骤。



Similar searches
    R中的JSON数组-{jsonlite} 用户单击“保存”时清除模态数据 Redis不适用于Laravel 6和Windows 10 mysql关闭太频繁 Samsung RF261BEAEWW Refrigerator User Manual