我试图通过使用缓存抽象文档中的方法来访问自定义密钥生成器以生成缓存密钥,但到目前为止我还没有找到任何解决方案......这里我给出了我的代码
@Cacheable(value = "itemsCache", key ="T(com.ernst.transactionsAPI.IndexKeyGenerator).generate(#root.target, #root.method.name, #root.args[0])")
public List<FilialenImpl> getOutletByCustomSearchCache(SearchParametersImpl searchParameters);
我收到了以下错误:
org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 47): Method call: Method generate(com.ernst.transactionsImpl.filialen.FilialenServiceBean,java.lang.String,com.ernst.persistenceImpl.impl.SearchParametersImpl) cannot be found on com.ernst.transactionsAPI.IndexKeyGenerator type
它没有反映方法名称,但是它传递了方法类型..请问任何人如何解决这个问题。
indexkeygenerator中的方法看起来像
public Object generate(Object target, Method method, Object... params) {
...}
先谢谢,
此致 拉哈西克哈。
答案 0 :(得分:1)
我在IndexKeyGenerator类中编写了一个静态方法generateKey并直接调用它 如下面的代码所示..然后,个人缓存的自定义缓存工作正常
@Cacheable(value = "itemsCache", key ="T(com.ernst.transactionsAPI.IndexKeyGenerator).generateKey(#root.target, #root.method, #root.args[0])")
public List<FilialenImpl> getOutletByCustomSearchCache(SearchParametersImpl searchParameters);