springBoot Paging query needs to have a Pageable parameter!错误

在做返回一个封装page方法时

Page queryForDetail(VatCompanyRefundQueryVo vo);

遇到系统报错,错误信息: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'vatCapitalServiceImpl': Unsatisfied dependency expressed through field 'vatCapitalDetailRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'vatCapitalDetailRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Paging query needs to have a Pageable parameter! Offending method public abstract org.springframework.data.domain.Page com.brcc.business.vatcapital.repository.IVatCapitalDetailRepository.queryForDetail(com.brcc.business.vatcompanyrefund.vo.VatCompanyRefundQueryVo)

看错误信息Paging query needs to have a Pageable parameter!   提示需要一个可分页参数

原因:

JpaRepository接口与实现类名字不一致

springBoot Paging query needs to have a Pageable parameter!错误_第1张图片

SpringBoot实现的JPA封装了JPA的特性,只需要写接口即可,但是有的时候约定的写法不符合我们的开发要求,没有很好的灵活性,这就需要我们自己去定义一下方法实现自己的封装Repository。所以这里会 出现repository的实现类,而springboot在编译的时候会默认在repository后面加上Impl来实现jpa接口,而这里我们自己写的实现类如果名字一致则会被作为jpa实现类的基类,这时我们自己定义的方法就可以实现,但是当我们的实现类名字不一致的时候Springboot会发现我们只写了自定义的接口,但是却没有实现它。

学习到了 笔记

你可能感兴趣的:(SpringBoot)