2009-12-04 77 views
0

我有使用EJB3 + Toplink的Java編寫的應用程序。我使用Glassfish作爲我的應用程序。服務器。在Glassfish中強制清除EJB3緩存

有時候,緩存的數據是舊的,我需要手動清除我的緩存。 I know,我們可以設置時間清除它,但我想製作一個按鈕,手動爲我清除它。是可以做到的嗎?

Query query = em.createQuery(sql.toString()).setHint("toplink.refresh", "true"); 

這個工作對我來說:

回答

2

顯然與您查詢使用此代碼數據庫可以刷新緩存。

0

我認爲這是更好地使用:

em.createNamedQuery("findAll").setHint(QueryHints.CACHE_RETRIEVE_MODE, CacheRetrieveMode.BYPASS).getResultList(); 

工作對我來說,我認爲這是比較標準的方式。