2009-12-04 3 views
0

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

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

ответ

2

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

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

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

0

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

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

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