Область сеанса CacheManager нельзя использовать в @Cacheable. Как это исправить? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть два Cache Manager с Singleton (это основной) и Session. И я указываю, что в классе MyRepository я хочу использовать "sessionBasedCache" через следующую аннотацию метода:

@Cacheable(value = "members", key = "#id.value()", cacheManager = "sessionBasedCache")
...

Когда вызывается "sessionBasedCache", я получаю следующее исключение:

setAttribute: Non-serializable attribute with name scopedTarget.epeSessionBasedCache

Это моя конфигурация:

@Bean(name = "sessionBasedCache")
@Scope(value = "session", proxyMode = ScopedProxyMode.INTERFACES)
public CacheManager epeSessionBasedCacheManager() {
    return new GuavaCacheManager();
}

Что я уже пробовал: если я использую кэш с одноэлементной областью действия, все в порядке. Я посмотрел через SimpleCacheManager, это по умолчанию весенний кеш. И он не реализует Serializable.

Есть ли у вас какие-либо мысли о том, что происходит и как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...