使用 java 在缓存中加载数据
Load data in cache with java
我有点迷失了一个问题。我需要在缓存中保存我从数据库查询的数据列表。该列表非常大,当它加载到组合框中时不是最佳选择。对此有什么想法吗?
我的代码是:
控制器:
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>
你可以使用EhCache之类的东西将查询设置为@Cacheable
,这将指示调用一个方法(或[=中的所有方法)的结果20=]) 可以缓存。
每次调用建议的方法时,都会应用缓存行为,检查是否已针对给定参数调用该方法:
我有点迷失了一个问题。我需要在缓存中保存我从数据库查询的数据列表。该列表非常大,当它加载到组合框中时不是最佳选择。对此有什么想法吗?
我的代码是:
控制器:
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>
你可以使用EhCache之类的东西将查询设置为@Cacheable
,这将指示调用一个方法(或[=中的所有方法)的结果20=]) 可以缓存。
每次调用建议的方法时,都会应用缓存行为,检查是否已针对给定参数调用该方法: