Java SpringData扩展JpaSpecificationExecutor错误
我有一个很奇怪的问题。在我的存储库中,我需要扩展Java SpringData扩展JpaSpecificationExecutor错误,java,spring-data,spring-data-jpa,Java,Spring Data,Spring Data Jpa,我有一个很奇怪的问题。在我的存储库中,我需要扩展JpaSpecificationExecutor接口,以便能够使用findAll(规范,可分页)进行自定义查询分页 但是,当我使用JpaSpecificationExecutor时 public interface DescriptionRepository extends ParentRepositoryCustom<Description, Long>, JpaSpecificationExecutor<Des
JpaSpecificationExecutor
接口,以便能够使用findAll(规范,可分页)
进行自定义查询分页
但是,当我使用JpaSpecificationExecutor时
public interface DescriptionRepository extends ParentRepositoryCustom<Description, Long>,
JpaSpecificationExecutor<Description> {
}
公共接口描述存储库扩展了ParentRepositoryCustom,
JpaSpecificationExecutor{
}
应用程序将不会生成,抛出类型类描述的未找到属性计数异常
我的Description
类没有count属性。当我从存储库中删除JpaSpecificationExecutor
时,一切又恢复正常。我遇到了同样的异常。就我而言,原因是
ParentRepositoryImpl未正确执行SimpleParepository
这是JpaSpecificationExecutor的一个实现。
因此,当Spring尝试解析查询名称时,它会排除属于Spring所调用的实现的repositoryBaseClass的方法名称。它位于org.springframework.data.repository.core.support.DefaultRepositoryInformation类中
public boolean isBaseClassMethod(Method method) {
return isTargetClassMethod(method, repositoryBaseClass);
}
检查repositoryBaseClass是否符合预期。它应该定义“count”方法
如果您没有扩展正确的超类,那么方法(“count”在您的例子中)不会从解析中排除,Spring会尝试通过根据其名称结构创建查询来构建查询。。。在这种情况下,将根据实体属性测试名称片段