java - 将反射与 Spring JPARespository 方法一起使用时出现 NoSuchMethodException(例如:findByName)
问题描述
我正在尝试使用Spring Data JPA提供的JPA Query Methods实现多个过滤器。
动态过滤器,例如: findByNameContainingCreatedAtBefore
(例如:)findByName
我使用 Java Reflection 从JPA Repository获取方法并动态调用。
Method method = institutionRepository.getClass().getMethod("findByName", String.class);
但是上面的行抛出NoSuchMethodException
.
有没有办法解决上述问题?
解决方案
我敢打赌您的源代码中没有findByName
,您希望看到 spring-data-jpa 生成的方法。这不会发生,因为该方法不是由 spring 添加到存储库本身,而是添加到该存储库上的代理。这就是为什么它必须是一个 bean - 以便它可以被 spring 包装并使用代理来提供所有功能。
推荐阅读
- swift - SwiftUI navigationBarItems:设备旋转时出现“通过属性检测到循环”错误
- python - 我如何将不匹配的字符串添加到我的 else 语句中?
- powershell - 变量提供者名称 $ 和 ^ 的值为 Clear-Host
- node.js - 在 Node js 应用程序中集成 Neo4j(Heroku)时面临未知的 Bolt 协议版本
- python - How to join enumerated values in python?
- python - 如何根据数据框中的单词检测来分配分数/分数?
- neo4j - Neo4j:带有种子标签的标签传播
- python - 多处理池读取文件中的行
- python - 访问python中元组列表中的变量的问题
- python - 在 matplotlib 中没有出现堆积条形图的刻度