带 SpEL 键的 Spring @Cacheable:始终评估为 null

2024-01-01

我在使用 @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 参数不为空,我已经验证过很多次了。文档说这应该有效,所以我很困惑。文档给出了以下示例

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

我也尝试过静态方法。这会引发 NullPointerException,因为这里的providerDTO 为null。

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

我如何调试它以找出发生了什么?这是 Spring 3.2.4-RELEASE。 @Cacheable 标签位于接口上,但我使用的是标准 spring AOP 而不是 AspectJ,因此据我了解,这应该仍然可以正常工作。


可能重复的SpelEvaluationException:EL1007E:(位置43):在空值上找不到字段或属性“组” https://stackoverflow.com/q/22959459/2621917 and spring @Cacheable 与 Ehcache,spel 查找有效对象为 null https://stackoverflow.com/q/24301074/2621917– 我相信你编译时没有调试信息。请检查您的 Maven 配置;您可能想在这里发布相关内容。在您的 POM(或父 POM)中搜索maven-compiler-plugin和一行,例如:

<debug>false</debug>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带 SpEL 键的 Spring @Cacheable:始终评估为 null 的相关文章

随机推荐

  • 先前操作未完成的问题

    我对 Linux 相当陌生 我正在尝试安装 openCV 软件 我正在安装一些东西 突然断电并且中断了 当我重新安装它时 我不断收到此错误 svn E155037 Previous operation has not finished ru
  • 使用 argparse 调用函数[重复]

    这个问题在这里已经有答案了 我在从 argpars 调用函数时遇到问题 这是我的脚本的简化版本 可以打印我给 s 或 p 的任何值 import argparse def main parser argparse ArgumentParse
  • 如何用 JavaScript 创建一个猜数字游戏?

    我需要创建一个猜数游戏 使用它接收一个值document getElementById并将其输出到
  • 将文件上传到Google存储而不将其保存到内存

    我想将文件从前端直接通过后端上传到Google存储桶中 而不是先将其完全保存在服务器的内存中 我添加了一个类似于以下的端点example https cloud google com go getting started using clo
  • 如何从akka actor获取消息队列的大小?

    应用程序中有Akka Java API 参与者 UntypeActor 和消息 根据API合同 如果几条消息发送给同一个参与者 它们将被一一排队和处理 我想根据队列大小处理参与者中的消息 基本上 在 Actor onReceive 中处理当
  • 将图像数据从 Java 传递到接受指针的 C Native 函数

    我在外部 so 文件中提供了一个 C 函数 该函数将图像数据作为输入 并提供压缩图像以及图像长度作为输出 函数模板如下 char OutputImage CompressImage char InputImage int lenOutIma
  • VB.NET 中带有 = 的奇怪 Case 语句

    在我们的一个班级中找到了这段代码 但我不明白第一个 case 语句在做什么 Case i 1 我确信有人只是错误地从 IF ELSE 语句转换了它 但为什么 VB NET 允许这种语法 这样写是什么意思呢 Dim i As Integer
  • Heroku:推送被拒绝,无法编译 Ruby 应用程序

    我已经被困了一个星期试图解决这个问题 我目前一直在关注在线讲座 但是我完全遵循了所有内容 并且讲师并没有真正提供任何帮助 每当我尝试推送到 heroku 时 我都会收到以下信息 初始化存储库 完成 数物体 85 完成 增量压缩最多使用 2
  • 从 xml 文件中提取信息作为 RDF 三元组

    任何人都可以推荐一个教程或告诉我如何构建一个 java 程序来从 xml 文件中提取信息并使用现有本体生成 RDF 三元组的输出 一个例子真的很有帮助 Thanks 有现成的工具可以解决这个问题 例如XSPARQL http xsparql
  • (使用 Android Studio)AVD 在启动我的应用程序期间崩溃

    我是 Android 应用程序开发新手 我的 AVD 前一天工作正常 但当我第二天尝试启动它时 它停止工作并抛出以下错误 Failed to create Context 0x3005 could not get wglGetExtensi
  • 为什么此代码中的缓冲区溢出行为与我的预期不同?

    我有这个程序 include
  • 谷歌事件跟踪器 v3

    我的 google 事件跟踪器有问题 按照官方文档谷歌开发文档 https developers google com analytics devguides collection android v2 events我添加了带有我的 id
  • 资源池“内部”中系统内存不足

    SQL Server 2008 链接服务器和临时插入会导致快速内存泄漏 最终导致服务器无响应并以以下错误结束 Msg 701 Level 17 State 123 Server BRECK PC SQLEXPRESS Line 2 Ther
  • 用 C# 解压存档

    我想默默摘录 rar档案 Net 在 IO Compression 中没有任何 Rar 类 所以我想使用 cmd 它比外部 dll 更好 它会提取 但不在静默模式下提取 我究竟做错了什么 const string source D 22 r
  • Google App Engine 从不同项目访问云数据存储

    我一直在尝试找到一种解决方案来从另一个谷歌应用程序引擎项目访问一个项目中的数据存储 我浏览了有关从不同项目的计算引擎访问数据存储的教程 但是 这不是我想要的 这里需要的是从不同的应用程序引擎项目访问一个项目上的数据存储 有人成功做到这一点吗
  • Sharepoint 开发人员在技术上是否“具备”进行自定义应用程序开发的能力,反之亦然? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这可能是一个基于意见的问题 但这是我想问的问题 即使它最终被关闭或删除 我从事自定义应用程序开发 asp net aspMVC 并且对共享点完全
  • JavaTM 加密扩展中的 JCEKS keyStore 使用的加密..?

    In JCEKSkey 存储使用的算法以及密钥的大小 我找到了有用的东西Triple DES 但密钥大小是多少 Thank s 目前 每个PrivateKey and SecretKeyJCEKS 密钥存储中的条目使用 CBC 模式下的 3
  • Objective-C:如何进行控制台输入?

    如何从控制台输入获取 NSString 然后尝试将其转换为 int 您可以阅读char 来自控制台的字符串 scanf 或其他 就像在常规 C 程序中一样 然后 创建一个NSString使用它的对象stringFromCString wit
  • Python Web 服务器:如何异步处理请求

    我需要创建一个 python 中间件来执行以下操作 a 接受来自多个客户端的http get post 请求 b 修改这些请求并将其分派到后端远程应用程序 通过套接字通信 我对此远程应用程序没有任何控制权 c 接收来自后端应用程序的处理结果
  • 带 SpEL 键的 Spring @Cacheable:始终评估为 null

    我在使用 Cacheable 和使用基于 Spring 表达式语言的自定义键时遇到问题 我有以下代码 Cacheable value myCache key providerDTO identifier ClientVO loadClien