2012-01-18 53 views

回答

1

JPA沒有二級緩存的概念(它不是規範的一部分)。所以第二級緩存的行爲完全取決於JPA提供者。你在用什麼Hibernate,EclipseLink,OpenJPA?

更新:我站在部分校正,JPA 2.0引入幾個選項​​來控制第二級高速緩存的使用(如@Cachable

+0

我正在使用EclipseLink – LuckyLuke 2012-01-18 18:43:28

+0

在JPA中尋找有關緩存的內容時,我發現了一些關於二級緩存的良好鏈接 - 希望它們也能爲您提供幫助 - http://docs.oracle.com/javaee/6/ tutorial/doc/gkjio.html http://help.sap.com/saphelp_nw73/helpdata/en/f5/bb247575004294831c900556ca62ae/frameset.htm – ND27 2014-03-13 18:22:47

0

L2高速緩存應該(默認,在任何合理的JPA實現)被在更新提交而不是刷新,但這不是在JPA2規範中強制執行的,所以您需要了解實現細節。 DataNucleus當然只會在提交時更新它。如果二級緩存在刷新時更新,然後這些對象更改回滾,則會導致潛在的無效/非持久數據被讀取。有些人可能會允許這個選項。

+0

似乎沒有在EclipseLink中刷新二級緩存。 – LuckyLuke 2012-01-18 19:00:21

相關問題