java - JPA EntityManager 和查询方法组合 No property found for type
问题描述
所以我的问题是我有一个实现 JpaRepository 的接口和我的自定义接口,该接口在另一个使用 EntityManager 进行自定义查询的类中实现。
当我尝试运行代码时,出现以下异常:
No property [custom methods name] found for type [Entity]
我自动装配的存储库:
@Repository
public interface FooRepository extends JpaRepository<Foo, Long>, FooCustomRepository {
}
自定义存储库接口:
public interface FooCustomRepository {
List<Foo> getFoos();
}
自定义存储库的实现:
public class FooCustomRepositoryImpl implements FooCustomRepository {
@PersistenceContext
private EntityManager entityManager;
@Override
public List<Foo> getFoos() {
[query]
}
}
我以前从未见过此错误,但我一直在以这种方式使用自定义存储库。
解决方案
Spring 无法在简单类中获取 bean。
如果您需要 spring 中的 bean,则需要从简单类中制作 bean。从 bean 可以访问其他 bean。
因为,当您添加注释时@Repository
,将类FooCustomRepositoryImpl
制作为 bean 并查找其他 bean。
我认为,该类代码FooCustomRepositoryImpl
需要注释@Repository
@Repository
public class FooCustomRepositoryImpl implements FooCustomRepository {
@PersistenceContext
private EntityManager entityManager;
@Override
public List<Foo> getFoos() {
[query]
}
}
以及类中的代码示例CustomItemRepositoryImpl
推荐阅读
- linux - 仅查找/列出目录中递归的文件类型
- jira - 当我离开组织时,我在个人空间中创建的 Confluence 内容会被删除吗?
- webots - 尝试将 ImageTexture 添加到 IndexedFaceSet 的形状中,如何控制 ImageTexture 的外观?
- file - 随机文件顺序
- bash - 双参数替换以获取变量值
- git - 如何在 GitHub 流程中合并和标记先前版本的错误修复
- unity3d - 如何将unity项目上传到github
- python - 所有未见数据的概率值均小于 0.5
- c - 通过指针从 kd 树递归打印节点
- solr - 是否可以为 Solr 8 的每个集合使用“ClassicIndexSchemaFactory”的 schema.xml?