Primavera @Cacheable com chave de SpEL: sempre avalia a null
Estou tendo um problema com o @Cacheable e usando uma chave personalizada com base na linguagem de expressão Spring. eu tenho o seguinte código
@Cacheable(value = "myCache", key = "#providerDTO.identifier")
ClientVO loadClientVOByProviderDTO(ProviderDTO providerDTO);
Isso está jogando o seguinte erro
org.springframework.expression.spel.SpelEvaluation Exception: EL1007Epos 0): Field or property 'identifier' cannot be found on null
O argumento providerDTO não é nulo, verifiquei isso muitas vezes. Os docs dizem que isso deve funcionar, por isso estou muito confuso. Os documentos dão o seguinte exemplo
@Cacheable(value="books", key="#isbn.rawNumber")
Eu também tentei com um método estático. Isso lança um NullPointerException porque o providerDTO é nulo aqui.
public static String cacheKey(ProviderDTO providerDTO)
{
return providerDTO.identifier + "-" + providerDTO.clientID + "-" + providerDTO.clubID;
}
Como posso depurar isso para descobrir o que está acontecendo? Esta é a Primavera 3.2.4-RELEASE. A tag @Cacheable está em uma interface, mas estou usando o padrão Spring AOP e não AspectJ, tanto quanto eu entendo que isso ainda funcionaria bem.