Hibernate二级缓存是否对“按主键查找”以外的其他功能有用?

Pie*_*ouy 2 caching hibernate second-level-cache query-cache

据我了解,L2缓存在使用实体的主键查找实体时非常有用。

但是,是否有一点用它来进行不基于主键的查询?例如:

SELECT p FROM Person p WHERE p.age > 18 
Run Code Online (Sandbox Code Playgroud)

如果查询缓存打开,将L2缓存是在所有什么用?

JB *_*zet 5

不,在那种情况下它没有任何用处。当通过其ID获取实体时,或者在通过OneToOne和ManyToOne关联进行导航(这也会导致通过其ID加载实体,除非引用的列不是PK)时,将使用L2高速缓存。