我有点困惑。我需要在缓存中保存从数据库查询的数据列表。该列表很大,并且在组合框中加载时并不乐观。有任何想法吗?
我的代码是:
控制器:
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>
答案 0 :(得分:1)
您可以使用类似 EhCache 的查询来将查询设置为@Cacheable
,这表示可以缓存调用方法(或类中的所有方法)的结果。
每次调用建议的方法时,都会应用缓存行为,检查是否已为给定参数调用该方法: