JPA 2.1和Hibernate中的查询缓存

时间:2019-02-26 05:42:08

标签: java hibernate jpa caching orm

Hibernate具有两个级别的缓存和查询缓存。但是据我所知,在JPA中只有两级缓存。在其他ORM中,我也看到了查询缓存。也许我错了。因此,我想问你。 那查询缓存呢?这是某些ORM的功能还是JPA中的功能?如果在JPA中,那么在哪里?

1 个答案:

答案 0 :(得分:0)

第二级缓存是一个应用程序级缓存,它将存储实体数据。...

查询缓存是单独的缓存,仅存储查询结果...

莫斯特利的两个缓存在一起...

这两个缓存通过减少对数据库的sql语句命中次数,以透明的方式提高了性能。

从查询缓存中检索之前,缓存的实体标识符用于访问二级缓存...

如果二级缓存包含给定id的数据,则返回该值,如果未发出sql查询以从数据库加载实体,则将其返回。

查询缓存看起来像哈希图,其中键由查询文本和参数值组成,值是与查询匹配的实体ID的列表...

["From Student where firstName = ?", ["Balram"]].  --> [1,2]]

某些查询不返回实体,而是仅返回谓词值...

在这些情况下,它们自己的值将存储在查询缓存中....

请参阅此链接以了解...。

https://www.npmjs.com/package/json-server