Spring @Cacheable с ключом SpEL: всегда оценивается как ноль

У меня проблема с @Cacheable и я использую пользовательский ключ, основанный на языке выражений Spring. У меня есть следующий код

@Cacheable(value = "myCache", key = "#providerDTO.identifier")
ClientVO loadClientVOByProviderDTO(ProviderDTO providerDTO);

Это выбрасывает следующую ошибку

org.springframework.expression.spel.SpelEvaluation Exception: EL1007Epos 0): Field or property 'identifier' cannot be found on null

Аргумент providerDTO не нулевой, я проверял это много раз. Документы говорят, что это должно работать, поэтому я очень смущен. Документы дают следующий пример

@Cacheable(value="books", key="#isbn.rawNumber")

Я также пытался с помощью статического метода. Это выдает исключение NullPointerException, потому что здесь providerDTO имеет значение null.

public static String cacheKey(ProviderDTO providerDTO)                                                                                                                                                                                                                    
{                                                                                                                                                                                                                                                                         
    return providerDTO.identifier + "-" + providerDTO.clientID + "-" + providerDTO.clubID;                                                                                                                                                                            
}

Как я могу отладить это, чтобы узнать, что происходит? Это весна 3.2.4-RELEASE. Тег @Cacheable находится на интерфейсе, но я использую стандартную пружинную AOP, а не AspectJ, поэтому, насколько я понимаю, это все равно должно работать нормально.

Ответы на вопрос(1)

Ваш ответ на вопрос