当我尝试构建我的maven项目时,我得到以下Exception:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'performanceDao':
Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException:
No property customSearch found for type Performance!
我正在使用带有hibernate和java 1.8的Spring。 我只是想创建自己的查询方法。
异常本身对我没有意义,因为我没有属性customSearch,customSearch是我的方法。我已经尝试了其他方法名称和我可以通过谷歌找到的东西。
我认为它与类的命名约定有关。
相关的最小代码部分是:
存储库:
@Repository
public interface PerformanceDao extends JpaRepository<Performance,Integer>,PerformanceRepositoryCustom {
}
自定义界面:
public interface PerformanceRepositoryCustom {
public List<Performance> customSearch(Performance x, Integer durationDiff);
}
接口实现:
@Repository
public class PerformanceRepositoryImpl implements PerformanceRepositoryCustom {
@PersistenceContext
private EntityManager entityManager;
public PerformanceRepositoryImpl() {
super();
}
@Override
public List<Performance> customSearch(Performance x, Integer durationDiff){
return null;
}
}
答案 0 :(得分:2)
你是对的:问题在于你的类型的命名。
您必须将PerformanceDao接口重命名为PerformanceRepository,因此您有以下类型: