Мое приложение используется многими пользователями одновременно, всякий раз, когда пользователь вносит изменения в базу данных, я хочу, чтобы другие могли перезагрузить свой список сущностей новыми данными.Мне удалось сделать это с помощью следующего кода:
public List<T> listAll() {
clearCache();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(clazz);
Root<T> root = cq.from(clazz);
CriteriaQuery<T> cquery = cq.select(root);
List<T> lista = em.createQuery(cquery).setHint(QueryHints.CACHE_RETRIEVE_MODE,
CacheRetrieveMode.BYPASS).getResultList();
return lista;
}
public void clearCache(){
em.clear();
}
Проблема в том, что мне нужно добавлять методы clearCache и подсказки каждый раз, когда я хочу текущее состояние базы данных.Разве CacheRetrieveMode.BYPASS не должно быть достаточно?