在Glassfish中强制清除EJB3缓存

时间:2009-12-04 20:14:48

标签: java caching glassfish ejb-3.0 toplink-essentials

我用Java编写了使用EJB3 + Toplink的应用程序。我正在使用Glassfish作为我的应用程序。服务器

有时缓存的数据很旧,我需要手动清除缓存。我know我们可以腾出时间来清除它,但我想制作一个按钮,为我手动清除它。有可能吗?

2 个答案:

答案 0 :(得分:2)

显然,您可以使用以下代码查询数据库来刷新缓存:

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

这适合我。

答案 1 :(得分:0)

我认为最好使用:

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

它适用于我,我认为这是更标准的方式。