JPA EntityManager和查询方法组合找不到类型的属性



所以我的问题是我有一个实现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。From 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类代码示例

相关内容

最新更新