Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate二级缓存对除“a”以外的任何东西都有用吗;按主键查找“?_Hibernate_Caching_Second Level Cache_Query Cache - Fatal编程技术网

Hibernate二级缓存对除“a”以外的任何东西都有用吗;按主键查找“?

Hibernate二级缓存对除“a”以外的任何东西都有用吗;按主键查找“?,hibernate,caching,second-level-cache,query-cache,Hibernate,Caching,Second Level Cache,Query Cache,据我所知,二级缓存在使用主键查找实体时非常有用 但是,对于不基于主键的查询,使用它有什么意义吗?例如: SELECT p FROM Person p WHERE p.age > 18 如果查询缓存未启用,二级缓存是否有任何用处 不,在那种情况下没有任何用处。二级缓存用于根据实体ID获取实体,或在OneToOne和ManyToOne关联中导航(这也会导致根据实体ID加载实体,除非引用的列不是PK)

据我所知,二级缓存在使用主键查找实体时非常有用

但是,对于不基于主键的查询,使用它有什么意义吗?例如:

SELECT p FROM Person p WHERE p.age > 18 

如果查询缓存未启用,二级缓存是否有任何用处

不,在那种情况下没有任何用处。二级缓存用于根据实体ID获取实体,或在OneToOne和ManyToOne关联中导航(这也会导致根据实体ID加载实体,除非引用的列不是PK)