Spring Data RESTがオーバーライドされたリポジトリメソッドの/ search URLを作成しないようにする方法はありますか?例えばSpring Data REST -/search/findAll URLを作成せずにリポジトリfindAllを上書きする
次のコードは、コレクションリソースの機能を複製し、生成された/検索/ findAllのURLでの結果:
public interface EmployeeRepository extends CrudRepository<Employee, Long>
{
@Override
@Query("SELECT e FROM Empolyee e")
Iterable<Employee> findAll();
}
つのメソッドをオーバーライドする場合にのみ化粧品の問題ですが、あなたがしようとした場合同じ関数名と異なるパラメータを持つ複数のメソッドをオーバーライドするには、たとえばPagingAndSortingRepositoryのfindAllメソッドと、2つの関数を同じパスにマップしようとしているためにSpringが例外をスローします。中
public interface EmployeeRepository extends PagingAndSortingRepository<Employee, Long>
{
@Override
@Query("SELECT e FROM Employee e")
Iterable<Employee> findAll();
@Override
@Query("SELECT e FROM Employee e")
Iterable<Employee> findAll(Sort sort);
@Override
@Query("SELECT e FROM Employee e")
Page<Employee> findAll(Pageable pageable);
}
結果:
java.lang.IllegalStateException: Ambiguous search mapping detected. Both public abstract java.lang.Iterable uk.co.essl.roster.entity.employee.EmployeeRepository.findAll(org.springframework.data.domain.Sort) and public abstract java.lang.Iterable uk.co.essl.roster.entity.employee.EmployeeRepository.findAll() are mapped to /findAll! Tweak configuration to get to unambiguous paths!
at org.springframework.data.rest.core.mapping.SearchResourceMappings.<init>(SearchResourceMappings.java:60)
at org.springframework.data.rest.core.mapping.RepositoryResourceMappings.getSearchResourceMappings(RepositoryResourceMappings.java:128)
at springfox.documentation.spring.data.rest.EntityContext.searchMappings(EntityContext.java:107)
...
感謝 –