Автоматическая генерация ключей Ehcache и аннотация @Cacheable spring

Кто-нибудь знает, как работает генерация ключей по умолчанию для Ehcache? Если у меня есть следующий метод:

@Cacheable(cacheName = CACHE_KEY) // CACHE_KEY is static final field.
public List<DataObject> list(
    int firstRecord, int maxRecords, int pageSize, FilterObject filter) {
    ....
}

, где FilterObjectявляется пользовательским POJO, что я должен ожидать от фактического ключа кэша?

Что я наблюдаю, так это то, что при использовании разных экземпляров FilterObjectи без изменения других аргументоввызова моего метода он всегда дает один и тот же результат — результат первого вызова кэшируется и вернулся.

Вероятно, это FilterObjectPOJO, который вызывает поведение — я полагаю, что это либо некоторая сериализация, либо .toString()проблема, потому что я не переопределил соответствующие методы .

Тем не менее, мне не удалось найти точную информацию о том, как формируется ключ кэша для такого метода, как на веб-сайте Ehcache, так и в аннотационной документации @Cacheable. Буду признателен за любую информацию и рекомендации по этой теме.

11
задан Ivaylo Slavov 12 February 2016 в 20:13
поделиться