Hibernate具有两个级别的缓存和查询缓存。但是据我所知,在JPA中只有两级缓存。在其他ORM中,我也看到了查询缓存。也许我错了。因此,我想问你。 那查询缓存呢?这是某些ORM的功能还是JPA中的功能?如果在JPA中,那么在哪里?
答案 0 :(得分:0)
第二级缓存是一个应用程序级缓存,它将存储实体数据。...
查询缓存是单独的缓存,仅存储查询结果...
莫斯特利的两个缓存在一起...
这两个缓存通过减少对数据库的sql语句命中次数,以透明的方式提高了性能。
从查询缓存中检索之前,缓存的实体标识符用于访问二级缓存...
如果二级缓存包含给定id的数据,则返回该值,如果未发出sql查询以从数据库加载实体,则将其返回。
查询缓存看起来像哈希图,其中键由查询文本和参数值组成,值是与查询匹配的实体ID的列表...
["From Student where firstName = ?", ["Balram"]]. --> [1,2]]
某些查询不返回实体,而是仅返回谓词值...
在这些情况下,它们自己的值将存储在查询缓存中....
请参阅此链接以了解...。