返回类型与PagingAndSortingRepository不兼容及参数注解缺失问题排查
问题原因及解决方案
问题1:返回类型与父接口方法不兼容
你在AbstractRepository里重复声明的findAll(Pageable pageable)方法,没有继承PagingAndSortingRepository<M,String>中该方法的@NonNull返回值约束。父接口的该方法返回的是带@NonNull注解的PagePage<M>,编译器会判定二者的返回类型(包含注解契约)不兼容。
问题2:参数缺失@NonNull注解警告
父接口PagingAndSortingRepository的findAll(Pageable)方法中,Pageable参数被标记为@NonNull,但你重写的方法没有给该参数添加对应注解,静态代码检查工具会提示你违反了父接口的方法契约,缺失非空注解。
解决方案
最直接的解决方式是删除你自定义的findAll(Pageable pageable)方法——因为MongoRepository已经继承了PagingAndSortingRepository的这个方法,无需重复声明。
如果因特殊需求必须保留该方法声明,需要严格对齐父接口的注解约束:
@NoRepositoryBean public interface AbstractRepository <M extends AbstractModel> extends MongoRepository<M, String> { @NonNull Page<M> findAll(@NonNull Pageable pageable); Page<M> findAllByIsActive(boolean isActive, Pageable pageable); }
内容的提问来源于stack exchange,提问作者Ramon Jales
相关产品推荐
相关产品推荐

