【问题标题】:Hibernate's first level cache not working for boolean type?Hibernate 的一级缓存不适用于布尔类型?
【发布时间】:2019-03-19 00:28:52
【问题描述】:

我有一个 spring @Transactional 只读服务,它跨越多个对 JpaRepository 的调用,其方法使用返回 boolean 的本机查询。查询很繁重,并且在检查日志时看起来像是使用相同的参数执行了几次。 不应该只调用一次吗?使用 Spring Transactions 时一级缓存不起作用吗?是因为它返回的是boolean 而不是@Entity

【问题讨论】:

    标签: java spring hibernate caching transactional


    【解决方案1】:

    一级缓存仅适用于 EntityManagers 可以管理的结果,即实体。(或 Hibernate 中的 Session)

    如果您想缓存其他对象或简单类型,我建议将 @Cacheable 注释与一些缓存提供程序一起使用,例如 EhCache LINK

    编辑:

    您自己的查询不属于一级缓存机制。只有像持久化、合并、更新等简单的操作才能使用它。更多信息请查看这篇文章LINK

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 2016-09-30
      • 2013-11-23
      • 2011-01-13
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 2013-10-31
      相关资源
      最近更新 更多