Hibernate的一级缓存不适用于布尔类型吗?

时间:2018-10-14 11:25:41

标签: java spring hibernate caching transactional

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

1 个答案:

答案 0 :(得分:1)

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

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

编辑:

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