休眠的第一级缓存不适用于布尔类型?



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

第一级缓存仅适用于实体管理器可以管理的结果,即实体。(或休眠中的会话(

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

编辑:

您自己的查询不是第一级缓存机制的一部分。只有简单的操作,如持久,合并,更新等才能使用它。有关更多信息,请查看本文链接