gpt4 book ai didi

spring - 组合 hibernate @Transactional & ehcache @Cacheable 总是创建数据库事务

转载 作者:行者123 更新时间:2023-12-04 07:07:04 30 4
gpt4 key购买 nike

在对我们的应用程序进行负载测试时,我注意到如果您使用 @Transactional 和 @Cacheable 注释, hibernate 总是会创建一个数据库事务。有没有简单的方法来防止这种情况?
在 spring 中解决这个问题的一种更简单的方法是使用以下类/接口(interface)

  • 服务层接口(interface)
  • 可缓存的注释类,它只是一个代理/转发到
  • 事务注解实现类

  • 会发生以下情况

    调用 1:
  • 事务被创建
  • 类方法被调用
  • 结果缓存并返回

  • 调用 2:
  • 事务被创建
  • 返回缓存结果

  • 首选结果应该是:

    调用 1:
  • 事务被创建
  • 类方法被调用
  • 结果缓存并返回

  • 调用 2:
  • 返回缓存结果
  • 最佳答案

    您需要更改 @Transactional 的相对顺序和 @Cacheable方面。

    可以使用 order 进行配置<tx:annotation-driven> 的属性和 <cache:annotation-driven> .见 8.2.4.7 Advice ordering对于订单值的含义。

    关于spring - 组合 hibernate @Transactional & ehcache @Cacheable 总是创建数据库事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683603/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com