J'ai une application écrite en Java qui utilise EJB3 + Toplink. J'utilise Glassfish comme application. serveur. Parfois, les données mises en cache sont anciennes et j'ai besoin de vider mon cache manuellement. Je know que nous pouvons définir le temps de l'effacer, mais je voudrais faire un bouton qui effacera manuellement pour moi. Est-il possible de faire?Effacez le cache EJB3 dans Glassfish
0
A
Répondre
2
Apparemment, vous pouvez mettre en cache rafraîchir avec vous interrogez votre base de données en utilisant ce code:
Query query = em.createQuery(sql.toString()).setHint("toplink.refresh", "true");
Cela fonctionne pour moi.
0
je pense qu'il est préférable d'utiliser:
em.createNamedQuery("findAll").setHint(QueryHints.CACHE_RETRIEVE_MODE, CacheRetrieveMode.BYPASS).getResultList();
cela fonctionne pour moi et je pense qu'il est plus moyen standard.