我想使用JPA(eclipselink)從我的數據庫中獲取數據。數據庫被許多其他的來源所改變,因此我想回到數據庫來查找我執行的每個查找。我已經閱讀了許多關於禁用緩存的帖子,但這似乎沒有奏效。有任何想法嗎?在JPA(eclipselink)中禁用高速緩存
我想執行以下代碼:而我想這是假
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default");
EntityManager em = entityManagerFactory.createEntityManager();
MyLocation one = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
MyLocation two = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
System.out.println(one==two);
一個==二是真實的。
我曾嘗試將每個/以下所有對我的persistence.xml
<property name="eclipselink.cache.shared.default" value="false"/>
<property name="eclipselink.cache.size.default" value="0"/>
<property name="eclipselink.cache.type.default" value="None"/>
我也曾嘗試加入@Cache註釋實體本身:
@Cache(
type=CacheType.NONE, // Cache nothing
expiry=0,
alwaysRefresh=true
)
我誤解的東西?
詹姆斯在給我的回答您的評論迫使每個查詢去數據庫,是緩存關閉(<屬性名=「eclipselink.cache.shared.default 「value =」false「/> )當你測試它? – Justin 2010-05-11 13:04:30
對不起剛剛注意到這一點,緩存已關閉。我仍然有這個問題,並沒有接近解決方案。 – James 2010-05-27 11:39:05