簡體   English   中英

當調用EntityManager.flush()時,它是否也會刷新第二個緩存?

[英]When calling EntityManager.flush() will it flush the second cache too?

調用EntityManager.flush()時,它是否也會刷新二級緩存? 我嘗試使用谷歌搜索,我也試過沖洗它,它似乎確實如此,但它確實很好。

編輯:現在它似乎沒有刷新二級緩存。

JPA沒有二級緩存的概念(它不是規范的一部分)。 因此,二級緩存的行為完全取決於JPA提供程序。 你在使用什么Hibernate,EclipseLink,OpenJPA?

更新:我得到了部分糾正,JPA 2.0引入了一些控制二級緩存使用的選項(如@Cachable

L2緩存(默認情況下,在任何合理的JPA實現中)應該在commit not flush時更新,但這不是JPA2規范中的強制要求,因此您需要了解實現細節。 DataNucleus當然只在提交時更新它。 如果在刷新時更新了L2緩存,然后這些對象更改回滾,則會導致讀取潛在的無效/非持久數據。 有些人可能會允許這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM