【发布时间】:2020-09-05 03:27:34
【问题描述】:
我使用 JPA 来实现缓存(Hibernate 和 Redis)的持久性。
我有几个包含多列的表。
在大多数情况下,我只需要检索几列。但是,业务逻辑查询包含多个连接和复杂的过滤条件。
我正在考虑使用 JPQL、Criteria API 或本机查询来实现业务逻辑。本机查询最吸引我,因为我可以使用窗口函数和其他特定于 DB 的功能。 我只关心缓存效率。对于包含字段子集(投影)的查询,Hibernate 会使用缓存实体吗?
我相信,不是,唯一的缓存将在查询级别。 因此,对于这种情况,在性能、缓存或其他方面使用 JPQL 或标准 API 没有任何好处……我可以在此处使用直接本机查询,并将“可缓存”参数设置为“真”。
您能否证实或反驳我的理解?
【问题讨论】:
-
为什么需要缓存?数据库还不够快吗?
-
@SimonMartinelli 我想了解它是如何工作的。
标签: java sql hibernate caching jpql