Spring Cache + Spring Expression Language(SpEL)+ Redis

时间:2013-12-27 09:55:20

标签: java spring-el spelevaluationexception

  

org.springframework.expression.spel.SpelEvaluationException:EL1007E:(pos 0):在null上找不到字段或属性'orderId'

orderId是我的订单中的一个属性Vo

如何在我的应用程序中使用Spring Spring Expression Language(SpEL) 方法签名 @Cacheable(value = "customerId", key = "#orderVO.orderId" )

1 个答案:

答案 0 :(得分:0)

异常本身解释了参数对象 orderVO 为空。 而且很明显,没有null对象的属性。据我所知,你无法解决这个问题。

在调用方法之前,我会确保我的orderVO不为null。

PS:此错误与Redis,SpEL或Spring配置无关。

编辑:为了简单解释任何缓存可以被视为HashMap,现在想象一下当spring尝试缓存你的对象时,它需要一个键来放置你的返回对象。但是当你的orderVO为null时,不能获得orderId,因此你的对象不能放入缓存(不能生成hashkey等)。