java - 使用 Spring 表达式语言的 Spring Boot 咖啡因缓存
问题描述
我正在使用带有咖啡因缓存的 Spring Boot。我的缓存键是 Long 并且我需要键是例如:“1234-RULE”,其中 1234 是 Long 对象,-RULE 只是一个后缀。我尝试了以下方法来实现这一目标:
private final static String RULE_KEY = "#rule.id.concat('-RULE')";
@Cacheable(value = CacheConfig.RULE_OFFSET, key = RULE_KEY)
public BigDecimal getRuleOffset(final Rule rule) {
// some code to fetch the value and return it
}
在调试时,我收到错误:
Error occurred while performing the request. Message: EL1004E: Method call: Method concat(java.lang.String) cannot be found on type java.lang.Long
我的 rule.id 是 Long,我用来连接 id 和后缀的表达式似乎不正确。你能告诉我如何在这里为我的用例连接一个长字符串。
解决方案
EL 的文档有时可能有点奇怪,但您可以在+
这里用作连接运算符:
#rule.id + '-RULE'
推荐阅读
- c# - Intellisense 不适用于某些脚本
- python - 计算列内的值重复次数并将计算移至矩阵PANDAS
- django - Django 中的 post_save 信号是原子的吗?
- python - 按钮在 pyqt5 的第二个窗口上不起作用
- react-native - 为什么在 TouchableHighlight 中使用 View 时不能有背景色?
- matlab - 如果条件 Matlab 将不会通过第二个
- ios - 如何防止按钮在文本更改时移动?
- android - 使用 joda time 时在 ci 上测试失败
- javascript - ReactJS:“this.props.addDog(this.state.newDog);”是什么意思?在这段代码中是什么意思?
- postgresql - 如何将 pq.Int64Array 转换为字符串?