Hibernate二级缓存是否可用于除主键之外的任何其他内容" ?

时间:2015-07-20 16:29:00

标签: hibernate caching second-level-cache query-cache

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

但是有没有必要将它用于不基于主键的查询? E.g:

SELECT p FROM Person p WHERE p.age > 18 

如果查询缓存 NOT 已打开,L2缓存是否可以使用?

1 个答案:

答案 0 :(得分:5)

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