我有一个非常奇怪的问题。在我的存储库中,我需要扩展JpaSpecificationExecutor<T>接口,以便能够使用findAll(Specification<T>, Pageable)进行自定义查询分页。
但是,当我使用JpaSpecificationExecutor时
public interface DescriptionRepository extends ParentRepositoryCustom<Description, Long>,
JpaSpecificationExecutor<Description> {
} 应用程序不会构建,抛出No property count found for type class Description异常。
我的Description类没有count属性。当我从存储库中删除JpaSpecificationExecutor时,一切都恢复正常。
发布于 2012-09-05 18:56:43
我遇到了同样的异常。在我的例子中,原因是ParentRepositoryImpl没有正确扩展SimpleJpaRepository,这是JpaSpecificationExecutor的一个实现。因此,当Spring尝试解析查询名称时,它会包含属于Spring调用实现的repositoryBaseClass的方法名称。它在类org.springframework.data.repository.core.support.DefaultRepositoryInformation中。
public boolean isBaseClassMethod(Method method) {
return isTargetClassMethod(method, repositoryBaseClass);
}检查repositoryBaseClass是否为您所期望的。它应该定义"count“方法。
如果您没有扩展正确的超类,则该方法(在您的示例中为“count”)不会从解析中排除,Spring会尝试通过根据其名称结构创建查询来构建查询...在这种情况下,将针对您的实体属性测试名称片段。
https://stackoverflow.com/questions/11504253
复制相似问题