我有使用 EJB3 + Toplink 的 Java 编写的应用程序。我使用 Glassfish 作为我的应用程序。服务器。
有时缓存的数据很旧,我需要手动清除缓存。我知道我们可以设置时间来清除它,但我想制作一个按钮来为我手动清除它。有可能吗?
显然,您可以使用以下代码查询数据库来刷新缓存:
Query query = em.createQuery(sql.toString()).setHint("toplink.refresh", "true");
这对我有用。
我认为最好使用:
em.createNamedQuery("findAll").setHint(QueryHints.CACHE_RETRIEVE_MODE, CacheRetrieveMode.BYPASS).getResultList();
它对我有用,我认为这是更标准的方式。