Короче, пришлось немного повозиться, чтобы создать проект, который мог бы воспроизвести вашу ситуацию. Простыми словами, ваш кеш всегда пуст потому, что третий параметр функции у вас постоянно меняется...
Model.
Каждый раз, когда вызывается POST, то создаётся объект
Model и у него каждый раз новый адрес. Отсюда получается, что эта модель не может быть найдена в кеше.
Ваш код можно починить, если указать ключ кеширования:
@Cacheable(value = "sums", key = "{#A, #B}")
Про формат ключа я узнал как обычно
отсюда.
Наверное, вас интересует как я это выяснил? Повторюсь, потратил достаточно времени на проект, где я просто отдебажил код спринга. Там всё просто через аспекты.
Пожалуйста.