Принудительно очистить кэш EJB3 в Glassfish - PullRequest
0 голосов
/ 04 декабря 2009

У меня есть приложение, написанное на Java, которое использует EJB3 + Toplink. Я использую Glassfish в качестве своего приложения. сервер.

Иногда данные, которые были кэшированы, устарели, и мне нужно очистить кэш вручную. Я знаю , что мы можем установить время для его очистки, но я бы хотел сделать кнопку, которая очистит его вручную для меня. Возможно ли это сделать?

Ответы [ 2 ]

2 голосов
/ 05 декабря 2009

Видимо, вы можете обновить кэш, выполнив запрос к базе данных, используя этот код:

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

Это работает для меня.

0 голосов
/ 23 августа 2016

Я думаю, что лучше использовать:

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

это работает для меня, и я думаю, что это более стандартный способ.

...