Spring @Cacheable z kluczem SpEL: zawsze ma wartość null

Mam problem z @Cacheable i używam niestandardowego klucza opartego na języku Spring. Mam następujący kod

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

To powoduje następujący błąd

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

Argument providerDTO nie ma wartości NULL, zweryfikowałem to wiele razy. Doktorzy mówią, że to powinno zadziałać, więc jestem bardzo zdezorientowany. Dokumenty podają następujący przykład

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

Próbowałem także metodą statyczną. Zgłasza to wyjątek NullPointerException, ponieważ dostawca DTO ma tutaj wartość null.

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

Jak mogę to zdebugować, aby dowiedzieć się, co się dzieje? To jest Spring 3.2.4-RELEASE. Tag @Cacheable znajduje się na interfejsie, ale używam standardowego wiosennego AOP, a nie AspectJ, więc o ile rozumiem, powinien on nadal działać poprawnie.

questionAnswers(1)

yourAnswerToTheQuestion