使用Java将数据加载到缓存中

时间:2018-11-09 11:48:29

标签: java hibernate browser-cache ehcache

我有点困惑。我需要在缓存中保存从数据库查询的数据列表。该列表很大,并且在组合框中加载时并不乐观。有任何想法吗?

我的代码是:

  • 控制器:

    model.addAttribute(LISTA_LUGARES,lugarService.findLugaresByIdMunicipio(documentacionDTO.getIdMunicipio()));
    
  • 服务:

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

    @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 :(得分:1)

您可以使用类似 EhCache 的查询来将查询设置为@Cacheable,这表示可以缓存调用方法(或类中的所有方法)的结果。

每次调用建议的方法时,都会应用缓存行为,检查是否已为给定参数调用该方法:

Here's an example