【发布时间】:2020-01-15 03:10:56
【问题描述】:
@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)' in 'com.foo.repository.EmployeeRepository' 与 'findAll(示例,可分页)' 在 'org.springframework.data.repository.query.QueryByExampleExecutor'; 两种方法都有相同的擦除,但都没有覆盖另一个
我无法编写与该方法具有相同功能的@Query 方法。
如何在 Spring-Data 中将继承的存储库方法称为 Rest Enpoint?
【问题讨论】:
-
不,我只是问如何从 Spring Jpa 调用继承的方法作为 rest 端点,没有自定义方法实现。
标签: spring spring-boot spring-data-jpa spring-data