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