2009-12-04 75 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(); 

工作对我来说,我认为这是比较标准的方式。