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