EclipseLink: игнорировать кеш и получать данные напрямую из базы данных - PullRequest
0 голосов
/ 18 октября 2018

Мое приложение используется многими пользователями одновременно, всякий раз, когда пользователь вносит изменения в базу данных, я хочу, чтобы другие могли перезагрузить свой список сущностей новыми данными.Мне удалось сделать это с помощью следующего кода:

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 не должно быть достаточно?

...