首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpringData扩展JpaSpecificationExecutor错误

SpringData扩展JpaSpecificationExecutor错误
EN

Stack Overflow用户
提问于 2012-07-16 20:23:18
回答 1查看 1.2K关注 0票数 0

我有一个非常奇怪的问题。在我的存储库中,我需要扩展JpaSpecificationExecutor<T>接口,以便能够使用findAll(Specification<T>, Pageable)进行自定义查询分页。

但是,当我使用JpaSpecificationExecutor时

代码语言:javascript
复制
public interface DescriptionRepository extends ParentRepositoryCustom<Description, Long>,
        JpaSpecificationExecutor<Description> {

} 

应用程序不会构建,抛出No property count found for type class Description异常。

我的Description类没有count属性。当我从存储库中删除JpaSpecificationExecutor时,一切都恢复正常。

EN

回答 1

Stack Overflow用户

发布于 2012-09-05 18:56:43

我遇到了同样的异常。在我的例子中,原因是ParentRepositoryImpl没有正确扩展SimpleJpaRepository,这是JpaSpecificationExecutor的一个实现。因此,当Spring尝试解析查询名称时,它会包含属于Spring调用实现的repositoryBaseClass的方法名称。它在类org.springframework.data.repository.core.support.DefaultRepositoryInformation中。

代码语言:javascript
复制
public boolean isBaseClassMethod(Method method) {
    return isTargetClassMethod(method, repositoryBaseClass);
}

检查repositoryBaseClass是否为您所期望的。它应该定义"count“方法。

如果您没有扩展正确的超类,则该方法(在您的示例中为“count”)不会从解析中排除,Spring会尝试通过根据其名称结构创建查询来构建查询...在这种情况下,将针对您的实体属性测试名称片段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11504253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档