2012-03-22 2 views
4

Мы используем кеширование методом springmodules (Spring 2.0.7) в сочетании с ehcache для кэширования данных, которые часто запрашиваются, чтобы загрузить нагрузку из базы данных.Как аннулировать одну запись из кеша метода springmodules?

E.g. мы кэшируем результат метода public Profile getUserProfile(User u) {...}: когда пользователь обновляет данные в своем собственном профиле, было бы неплохо сделать недействительным кэшированный Profile только для этого одиночного User непосредственно после обновления, чтобы изменения сразу отражались в пользовательском интерфейсе ,

Есть ли способ достичь этого без аннулирования полного кеша для этого метода?

Или есть лучший вариант, чем springmodules-кеширование для этого прецедента?

Большое спасибо за любые подсказки.

ответ

2

Или есть лучший вариант, чем springmodules-кеширование для этого прецедента?

Использование Spring 3.1 имеет эту новую функцию кеширования.

Как аннулировать одну запись из кеша метода springmodules? По @CacheEvict от Spring 3.1

Весна Ссылка на 3.1 имеет хорошую главу для этого: 28.3 Declarative annotation-based caching

+0

Спасибо за указание мне Spring 3.1, выглядит как аккуратный способ добиться того, чего я хочу. То, о чем я не упоминал (извините, просто добавил эту информацию), является то, что я работаю над довольно большим проектом с использованием Spring 2.0.7. Модернизация проекта до весны 3.1, безусловно, потребует большой работы. Поэтому, если есть какое-либо другое хорошее решение (не обязательно весеннее решение), я бы предпочел этот ... – peterp

+0

@peterp: извините, я не знаю об этом весной 2.0.7 и springmodules-caching – Ralph

+0

Принимая это как есть лучший ответ, еще не нашли другого решения. Спасибо Ральфу – peterp