This blog post(引用爲here)表示SQLQuery不使用Hibernate會話緩存。但是,a)沒有證據,b)它們不使用SQLQuery.addEntity,它可能會提供允許Hibernate使用其緩存的信息。Hibernate中的SQLQuery使用會話緩存嗎?
The docs不提及這種或那種緩存。
如果我使用addEntity,SQLQuery是否使用會話緩存?
編輯:This section的文檔的說:
每當你傳遞一個對象來保存(),更新()或者saveOrUpdate(),和 何時你使用load() get(),list(),iterate() 或scroll(),該對象被添加到 會話的內部緩存中。
由於addEntity()允許list()返回對象,這意味着它正在使用緩存。我該如何檢查?這些相同的文檔說,緩存有一個「包含」方法,可以瀏覽第二級緩存,但不能瀏覽會話緩存。
編輯#2:通過打開Hibernate查詢的日誌記錄,它似乎不是緩存,但也許某些情況下會使它緩存。