Загружать данные в кеш с помощью Java - PullRequest
0 голосов
/ 09 ноября 2018

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

Мой код:

  • Контроллер:

    model.addAttribute(LISTA_LUGARES,lugarService.findLugaresByIdMunicipio(documentacionDTO.getIdMunicipio()));
    
  • Услуги:

    public List<Lugar> findLugaresByIdMunicipio(Long idMunicipio) {
        return this.lugarRepository.findLugaresByIdMunicipio(idMunicipio);
    }
    
  • Repository:

    @Query("from Lugar l where l.municipio.id = :idMunicipio order by l.nombre asc")
    List<Lugar> findLugaresByIdMunicipio(@Param("idMunicipio") Long idMunicipio);
    
  • HTML:

     <select
        id="lugar" th:field="*{idLugar}" class="form-control">
        <option th:each="type : ${lugar}" th:value="${type.id}"
        th:text="#{${type.nombre}}">opciones</option>
        </select>
    

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете использовать что-то вроде EhCache , чтобы установить запрос как @Cacheable, это будет означать, что результат вызова метода (или всех методов в классе) может быть кэширован.

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

Вот пример

...