@RepositoryRestResource
public interface EmployeeRepository extends JpaRepository<Employee, Integer> {
@Query("SELECT employee FROM Employee employee")
List<Employee> getAll();
Page<Employee> findAll(Example<Employee> employeeExample, Pageable pageable);
}
如果我打电话给我
.../api/employees/search/getAll
它给了我getAll
方法的结果
但是JpaRepository具有相同的功能,但我无法调用它:
.../api/employees/search/findAll
幸运的是,我能够编写具有相同功能的@Query
方法。
但是现在我需要从QueryByExampleExecutor
调用this方法(JpaRepository扩展了此接口)
<S extends T> Page<S> findAll(Example<S> var1, Pageable var2);
我为EmployeeRepository编写了一些函数,以便将其称为休息端点。
Page<Employee> findAll(Example<Employee> employeeExample, Pageable pageable);
但是我得到了下面的错误:
findAll(Example,Pageable)中的 'com.foo.repository.EmployeeRepository'与 的'findAll(Example,Pageable)' 'org.springframework.data.repository.query.QueryByExampleExecutor'; 两种方法具有相同的擦除效果,但都不能覆盖另一种方法
我无法编写与该方法具有相同功能的@Query
方法。
如何在Spring-Data中将继承的存储库方法称为Rest Enpoint?
答案 0 :(得分:0)
正确的签名是
@Override
<S extends Employee> Page<S> findAll(Example<S> example, Pageable pageable)