Я использую ehcache для кэширования данных в моем весеннем проекте.
Например, если вы выбираете таблицу данных mst_store, то в настоящее время я использую код ниже
public interface MstStateRepository extends JpaRepository<MstState, Integer> {
@Override
@Cacheable("getAllState")
List<MstState> findAll();
Вы можете видеть, что findAll
метод return List<MstState>
Но вместо List, что мне нужно, возвращаемый тип как Map. Имеет в виду ключ как stateId и объект в Value.
Я могу сделать это в метке обслуживания, но мне нужно написать отдельную логику для этого, как показано ниже
@Service
class CacheService {
@Autowired
private MstStateRepository mstStateRepository;
Map<Integer, MstState> cacheData = new HashMap<>();
public List<MstState> findAllState() {
List<MstState> mstStates = mstStateRepository.findAll();
for (MstState mstState : mstStates) {
cacheData.put(mstState.getStateId);
cacheData.value(mstState);
}
}
}
Таким образом, вместо написания отдельной логики мы можем напрямую получить Map из хранилища. Пожалуйста, предложите