2

@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 引数が null ではありません。これを何度も確認しました。ドキュメントはこれがうまくいくはずだと言っているので、私は非常に混乱しています。ドキュメントは次の例を示しています

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

静的メソッドも試しました。ここでは providerDTO が null であるため、これは NullPointerException をスローします。

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

これをデバッグして何が起こっているのかを調べるにはどうすればよいですか? これは Spring 3.2.4-RELEASE です。@Cacheable タグはインターフェイス上にありますが、私は AspectJ ではなく標準の spring AOP を使用しているため、これでも問題なく動作するはずです。

4

1 に答える 1

0

SpelEvaluationExceptionの重複の可能性: EL1007E:(pos 43): Field or property 'group' cannot be found on null and spring @Cacheable with Ehcache, spel find null for valid object – デバッグ情報なしでコンパイルすると思います。Maven の設定を確認してください。関連するビットをここに投稿することをお勧めします。POM (または親 POM) を検索して、maven-compiler-plugin次のような行を探します。

<debug>false</debug>
于 2014-06-19T11:06:14.860 に答える